#ifndef BULLET_SERVICE_H #define BULLET_SERVICE_H #include "raylib.h" #include "services/Service.h" #include "services/AssetService.h" #include "entities/Bullet.h" #include "entities/PBullet.h" #include "entities/EBullet.h" #include #include class BulletService : public Service { public: void initBullets() { this->bullets.clear(); } void bulletLogic() { for (auto it = this->bullets.begin(); it != this->bullets.end();) { (*it)->logic(); if ((*it)->getHasCollided()) it = this->bullets.erase(it); else ++it; } } void drawBullets() { for (auto it = this->bullets.begin(); it != this->bullets.end();) { (*it)->draw(); ++it; } } void addPlayerBullet(Vector2 position, float direction) { this->bullets.push_back(std::make_unique(position, direction)); } void addEnemyBullet(Vector2 position, float direction) { this->bullets.push_back(std::make_unique(position, direction)); } protected: private: std::vector> bullets; }; #endif