2dkg/2dgk_7/2dgk_7/KPlayerController.h
2021-12-12 13:40:09 +01:00

38 lines
805 B
C++

#pragma once
#include "KPawn.h"
#include "KPlayer.h"
#include "KVector2d.h"
namespace KapitanGame {
class KGame;
class KInput;
class KPlayerController : public std::enable_shared_from_this<KPlayerController>
{
public:
KPlayerController(const KPlayer player, KGame* const game)
: Player(player),
Game(game)
{
}
void SetupInputBindings(KInput& input);
void MoveYAxis(float axis);
void MoveXAxis(float axis);
void Update(float deltaTime);
void NotifyWin() const;
void Possess(KPawn* pawn);
void UnPossess();
const KPlayer& GetPlayer() const;
private:
KVector2D Input{ 0.f, 0.f };
const KPlayer Player;
KPawn* Pawn{};
KGame* Game;
};
typedef void (KPlayerController::* KPlayerCommand)();
typedef void (KPlayerController::* KPlayerAxisCommand)(float input);
}