yupplemayham/YuppleMayham/gameplay/weapons/bullet.h
2024-06-21 16:59:06 -04:00

43 lines
No EOL
1,014 B
C++

#ifndef _H_BULLET_H
#define _H_BULLET_H
#include "../entity.h"
#include <glm/glm.hpp>
#include <vector>
class Component;
class Camera;
class Bullet : public Entity
{
public:
Bullet(std::shared_ptr<Shader> shader, glm::vec3 fireFrom, glm::vec2 direction, float bulletSpeed, float bulletDrop, glm::vec2 bulletSize) :
Entity(shader),
origin(fireFrom),
direction(direction),
bulletSpeed(bulletSpeed),
bulletDrop(bulletDrop),
bulletSize(bulletSize) {
this->setPosition(origin);
this->setScale(glm::vec3(bulletSize, 1.0f));
};
void addComponent(std::shared_ptr<Component> component);
void update(float deltaTime) override;
void render(const std::shared_ptr<Camera>& camera) override;
float getBulletDrop() const { return bulletDrop; }
glm::vec3 getBulletOrigin() const { return origin; }
~Bullet();
private:
glm::vec3 origin;
glm::vec2 direction;
float bulletSpeed;
float bulletDrop;
glm::vec2 bulletSize;
std::vector<std::shared_ptr<Component>> components;
};
#endif // _H_BULLET_H