GameObjects

Began to add GameObjects, starting with the player.
This commit is contained in:
onTheZero
2025-08-13 00:59:03 -04:00
parent 237272c17b
commit 4bf6b02255
37 changed files with 2640 additions and 222 deletions

64
Player.cpp Normal file
View File

@@ -0,0 +1,64 @@
#include "Player.h"
#include "Camera.h"
#include <iostream>
Player::Player(glm::vec3 Position, glm::vec3 Rotation)
: GameObject(Position, Rotation, glm::vec3(1.0f, 1.0f, 1.0f)),
PlayerCamera(new Camera(glm::vec3(0.0f, 1.0f, 0.0f)))
{
PlayerCamera->Position = Position + PlayerCamera->CameraOffset;
PlayerCamera->WorldUp = this->WorldUp;
std::cout << "{" << Position.x << ", " << Position.y << ", " << Position.z << "}" << std::endl;
std::cout << "{" << PlayerCamera->Position.x << ", " << PlayerCamera->Position.y << ", " << PlayerCamera->Position.z << "}" << std::endl;
}
void Player::Update()
{
}
void Player::ProcessKeyboard(EInputDirection Direction, float Delta)
{
float Velocity = bIsRunning ? RunSpeed : WalkSpeed;
Velocity = Velocity * Delta;
if (Direction == FORWARD)
Position += Front * Velocity;
if (Direction == BACKWARD)
Position -= Front * Velocity;
if (Direction == LEFT)
Position -= Right * Velocity;
if (Direction == RIGHT)
Position += Right * Velocity;
PlayerCamera->Position = Position + PlayerCamera->CameraOffset;
PlayerCamera->WorldUp = this->WorldUp;
}
void Player::ProcessMouseMovement(float XOffset, float YOffset, GLboolean bConstrainPitch)
{
XOffset *= MOUSE_SENSITIVITY;
YOffset *= MOUSE_SENSITIVITY;
Yaw += XOffset;
PlayerCamera->Yaw = Yaw;
PlayerCamera->ProcessMouseMovement(XOffset, YOffset);
UpdatePlayerVectors();
}
glm::mat4 Player::GetViewMatrix() const
{
return PlayerCamera->GetViewMatrix();
}
void Player::UpdatePlayerVectors()
{
glm::vec3 UpdatedFront;
UpdatedFront.x = cos(glm::radians(Yaw)) * cos(0);
UpdatedFront.y = sin(0);
UpdatedFront.z = sin(glm::radians(Yaw)) * cos(0);
Front = glm::normalize(UpdatedFront);
Right = glm::normalize(glm::cross(Front, WorldUp));
Up = glm::normalize(glm::cross(Right, Front));
}