1
0
game/client/entity/player/PlayerController.hpp

38 lines
895 B
C++

#pragma once
#include <raylib.h>
#include <raymath.h>
#include "../Entity.hpp"
class PlayerController : public Entity {
private:
Camera3D camera{};
float cameraDistance;
float cameraHeight;
float moveSpeed;
float cameraYaw{0.0f};
float cameraPitch{0.3f};
bool isRightMouseDown{false};
Vector2 lastMousePos{0, 0};
public:
PlayerController(float distance = 10.0f, float height = 5.0f, float speed = 5.0f);
void update(float deltaTime) override;
void setPlayerPosition(const Vector3& pos);
Vector3 getPlayerPosition() const { return position; }
Vector3 getMoveInput() const;
Camera3D& getCamera() { return camera; }
float getCameraYaw() const { return cameraYaw; }
float getCameraPitch() const { return cameraPitch; }
private:
void updateCameraPosition();
void handleCameraRotation();
void handleCameraZoom();
};