Entity system at last

This commit is contained in:
Ben Kyd
2019-11-14 14:36:05 +00:00
parent ca29f66663
commit e690652b03
7 changed files with 65 additions and 38 deletions

View File

@@ -13,38 +13,47 @@ Entity::Entity(glm::vec3 postion, glm::vec3 direction, std::shared_ptr<Camera> c
}
}
<<<<<<< HEAD
Player::Player(glm::vec3 position, glm::vec3 direction) {
Player::Player(glm::vec3 position, glm::vec3 direction, std::shared_ptr<Camera> camera)
: Entity(position, direction, camera) {
Position = { 0, 64, 0 };
EntityCamera->Position = { Position.x, Position.y + EyePosition, Position.z };
EntityCamera->UpdateView();
}
void Player::Move(Uint8* state) {
void Player::MoveSDL(Uint8* state) {
EntityCamera->MoveCamera(state);
Position = EntityCamera->Position;
Position.y -= EyePosition;
}
void Player::HandleMouseSDL(SDL_Event e) {
}
void UpdatePosition(glm::vec3 position);
void UpdateDirection(glm::vec3 direction);
void CameaUpdateProjection(int xres, int yres);
=======
Player::Player(glm::vec3 position, glm::vec3 direction, std::shared_ptr<Camera> camera)
: Entity(position, direction, camera) {
camera->Position =
EntityCamera->HandleMouse(e);
Direction = EntityCamera->LookDirection;
}
Player(glm::vec3 position, glm::vec3 direction = {0.0f, 0.0f, 0.0f});
void Player::UpdatePosition(glm::vec3 position) {
void Move(Uint8* state);
void HandleMouse(SDL_Event e);
Position = position;
EntityCamera->UpdatePosition({ Position.x, Position.y + EyePosition, Position.z });
void UpdatePosition(glm::vec3 position);
void UpdateDirection(glm::vec3 direction);
}
void CameaUpdateProjection(int xres, int yres);
>>>>>>> 0b6a3b520cd2e51e4d8cf7716ec4ddcf51297e2e
void Player::UpdateDirection(glm::vec3 direction) {
Direction = direction;
EntityCamera->UpdateLookDirection(direction);
}
void Player::CameraUpdateProjection(int xres, int yres) {
EntityCamera->UpdateProjection(xres, yres);
}

View File

@@ -5,6 +5,8 @@
class Camera;
class Collider;
class Entity {
public:
@@ -15,7 +17,6 @@ public:
glm::vec3 Position;
// Look direction of the camera
glm::vec3 Direction;
// Velocity in direction
// of movement
glm::vec3 Velocity;
@@ -24,25 +25,26 @@ public:
std::shared_ptr<Camera> EntityCamera;
// Collider
// std::unique_ptr<Collider> EntityCollider;
// Mesh (or reference to)
};
class Player : public Entity {
public:
Player(glm::vec3 position, glm::vec3 direction, std::shared_ptr<Camera> camera);
void Move(Uint8* state);
float EyePosition = 1.7f;
void MoveSDL(Uint8* state);
void HandleMouseSDL(SDL_Event e);
void UpdatePosition(glm::vec3 position);
void UpdateDirection(glm::vec3 direction);
void CameaUpdateProjection(int xres, int yres);
void CameraUpdateProjection(int xres, int yres);
};