more camera movement
This commit is contained in:
@@ -174,18 +174,31 @@ namespace Game
|
||||
|
||||
{
|
||||
GetInstance().GameLevel.Update();
|
||||
|
||||
float delta = GetInstance().Delta;
|
||||
constexpr float moveSpeed = 10.0f;
|
||||
constexpr float rotSpeed = 1.0f;
|
||||
|
||||
float forwardInput =
|
||||
(GetKey(ScanCode::SDL_SCANCODE_W) ? 1.0f : 0.0f) + (GetKey(ScanCode::SDL_SCANCODE_S) ? -1.0f : 0.0f);
|
||||
float rightInput =
|
||||
(GetKey(ScanCode::SDL_SCANCODE_D) ? 1.0f : 0.0f) + (GetKey(ScanCode::SDL_SCANCODE_A) ? -1.0f : 0.0f);
|
||||
Vec3 inputVec = {rightInput, 0.0f, forwardInput};
|
||||
Vec2 moveInput = Vec2{rightInput, forwardInput};
|
||||
moveInput.Normalize();
|
||||
Vec3 inputVec = {moveInput.X * delta * moveSpeed, 0.0f, moveInput.Y * delta * moveSpeed};
|
||||
|
||||
Vec3 camForward = Cam.Transform.Forward();
|
||||
Vec3 camRight = Cam.Transform.Right();
|
||||
|
||||
Cam.Transform.Translate(
|
||||
{camForward.X * forwardInput, camForward.Y * forwardInput, camForward.Z * forwardInput});
|
||||
Cam.Transform.Translate({camRight.X * rightInput, camRight.Y * rightInput, camRight.Z * rightInput});
|
||||
Vec3 rotInput = {shared.Window.MouseDeltaY * delta, shared.Window.MouseDeltaX * delta, 0.0f};
|
||||
Cam.Transform.Rotate({0.0f, rotInput.Y, 0.0f});
|
||||
// TODO: split transform into rot matrix and translation
|
||||
|
||||
// Cam.Transform.Translate(
|
||||
// {camForward.X * forwardInput, camForward.Y * forwardInput, camForward.Z * forwardInput});
|
||||
Cam.Transform.TranslateLocal({0.0f, 0.0f, -forwardInput});
|
||||
Cam.Transform.TranslateLocal({-rightInput, 0.0f, 0.0f});
|
||||
bgfx::dbgTextPrintf(1, 4, 0x0f, "Cam forward: %.2f %.2f %.2f", camForward.X, camForward.Y, camForward.Z);
|
||||
}
|
||||
|
||||
// Set view and projection matrix for view 0.
|
||||
|
||||
Reference in New Issue
Block a user