/* * Projectile.h * * Created on: Apr 4, 2020 * Author: ayoungblood */ #ifndef SRC_ECS_PROJECTILECOMPONENT_H_ #define SRC_ECS_PROJECTILECOMPONENT_H_ #include "ECS.h" #include "Components.h" #include "../game/Vector2D.h" class ProjectileComponent : public Component { public: ProjectileComponent(int rng, int sp, Vector2D vel) : range(rng), speed(sp), velocity(vel) {} ~ProjectileComponent() {} void init() override { transform = &entity->getComponent(); transform->velocity = velocity; } void update() override { distance += speed; if (distance > range) { entity->destroy(); } else if (transform->position.x > Game::camera.x + Game::camera.w || transform->position.x < Game::camera.x || transform->position.y > Game::camera.y +Game::camera.h || transform->position.y < Game::camera.y) { entity->destroy(); } } private: TransformComponent* transform; int range; int speed; int distance; Vector2D velocity; }; #endif /* SRC_ECS_PROJECTILECOMPONENT_H_ */