begin raylib

This commit is contained in:
2026-01-04 17:19:13 +01:00
parent 0d84cc7470
commit 44851099d4
39 changed files with 291 additions and 743 deletions

View File

@@ -1,8 +1,7 @@
#include <td/display/state/DebugWorldState.h>
#include <chrono>
#include <iostream>
#include <td/display/Display.h>
#include <td/display/state/DebugWorldState.h>
#include <td/game/World.h>
#include <td/protocol/packet/Packets.h>
#include <td/render/renderer/EntityRenderer.h>
@@ -20,8 +19,7 @@
#include <client/state/GameState.h>
#include <client/state/LoggingState.h>
#include <td/display/Display.h>
#include <td/display/state/DebugWorldState.h>
#include <raylib.h>
namespace td {
@@ -70,45 +68,51 @@ DebugWorldState::DebugWorldState(Display& a_Display) : DisplayState(a_Display) {
m_Client->ChangeState<client::LoggingState>("Player0");
// camera
m_Camera.SetCamPos({77, 7, 13});
m_Camera.UpdatePerspective(m_StateMachine.GetAspectRatio());
// m_Camera = Camera{{0}};
m_Camera.position = (Vector3){77.0f, 7.0f, 13.0f}; // Camera position
m_Camera.target = (Vector3){0.0f, 1.0f, -1.0f}; // Camera looking at point
m_Camera.up = (Vector3){0.0f, 1.0f, 0.0f}; // Camera up vector (rotation towards target)
m_Camera.fovy = 45.0f; // Camera field-of-view Y
m_Camera.projection = CAMERA_PERSPECTIVE; // Camera projection type
// m_Camera.SetCamPos({77, 7, 13});
// m_Camera.UpdatePerspective(m_StateMachine.GetAspectRatio());
}
void DebugWorldState::Update(float a_Delta) {
m_Server->Update(a_Delta * m_PlaySpeed);
m_Client->Update(a_Delta * m_PlaySpeed);
if (m_ClientState)
UpdateCamera(&m_Camera, CAMERA_FREE);
if (m_ClientState) {
BeginMode3D(m_Camera);
m_Renderer.Render(m_ClientState->GetCurrentLerp());
EndMode3D();
}
constexpr int SECONDS = 10;
if (IsKeyPressed(KEY_Q)) {
m_Client->SendPacket(td::protocol::packets::SpawnTroopPacket(td::EntityType::Zombie, 1));
}
if (IsKeyPressed(KEY_Z))
m_Client->SendPacket(td::protocol::packets::PlaceTowerPacket(td::TowerType::Archer, td::TowerCoords(77, 13)));
if (IsKeyPressed(KEY_F)) {
m_Server->Update(SECONDS);
m_Client->Update(SECONDS);
}
if (IsKeyPressed(KEY_P))
m_PlaySpeed = 1 - m_PlaySpeed;
}
void DebugWorldState::OnAspectRatioChange(float a_Ratio) {
m_Camera.UpdatePerspective(a_Ratio);
// m_Camera.UpdatePerspective(a_Ratio);
}
void DebugWorldState::OnKeyDown(SDL_Keycode a_Key) {
void DebugWorldState::OnKeyDown(int a_Key) {
// temporary tests
constexpr int SECONDS = 10;
switch (a_Key) {
case SDLK_A:
m_Client->SendPacket(td::protocol::packets::SpawnTroopPacket(td::EntityType::Zombie, 1));
break;
case SDLK_Z:
m_Client->SendPacket(td::protocol::packets::PlaceTowerPacket(td::TowerType::Archer, td::TowerCoords(77, 13)));
break;
case SDLK_F:
m_Server->Update(SECONDS);
m_Client->Update(SECONDS);
break;
case SDLK_P:
m_PlaySpeed = 1 - m_PlaySpeed;
break;
default:
break;
}
}
DebugWorldState::~DebugWorldState() {}