16PlayerController::PlayerController() {
20void PlayerController::Initialize() {
33 if (ActivePlayer ==
nullptr) {
return; }
35 Vector2 newCamPos = ActivePlayer->GetPosition();
40 newCamPos.
x -= ActiveCamera->GetSize().x/2;
41 newCamPos.
y = ActiveCamera->GetSize().y-1;
43 ActiveCamera->SetPosition(newCamPos);
45 ActivePlayer->AddLocalOffset(playerMoveVec * 0.5);
49void PlayerController::sMvL() { playerMoveVec.
x = -1; }
50void PlayerController::sMvR() { playerMoveVec.x = 1; }
51void PlayerController::sMvU() { playerMoveVec.y = 1; }
52void PlayerController::sMvD() { playerMoveVec.y = -1; }
54void PlayerController::eMvL() { playerMoveVec.x = 0; }
55void PlayerController::eMvR() { playerMoveVec.x = 0; }
56void PlayerController::eMvU() { playerMoveVec.y = 0; }
57void PlayerController::eMvD() { playerMoveVec.y = 0; }
60void PlayerController::AssignPlayer(
Player* player) {
61 ActivePlayer = player;
62 if (ActivePlayer ==
nullptr) {
63 LOG_DEFAULT(LogType::WARNING,
"Player set to nullptr during controller assignment");
76 InputBinding(Keycode::A, InputType::Triggered,
"StartMoveLeft",
this, &PlayerController::sMvL),
77 InputBinding(Keycode::D, InputType::Triggered,
"StartMoveRight",
this, &PlayerController::sMvR),
78 InputBinding(Keycode::W, InputType::Triggered,
"StartMoveUp",
this, &PlayerController::sMvU),
79 InputBinding(Keycode::S, InputType::Triggered,
"StartMoveDown",
this, &PlayerController::sMvD),
81 InputBinding(Keycode::A, InputType::Completed,
"CompleteMoveLeft",
this, &PlayerController::eMvL),
82 InputBinding(Keycode::D, InputType::Completed,
"CompleteMoveRight",
this, &PlayerController::eMvR),
83 InputBinding(Keycode::W, InputType::Completed,
"CompleteMoveUp",
this, &PlayerController::eMvU),
84 InputBinding(Keycode::S, InputType::Completed,
"CompleteMoveDown",
this, &PlayerController::eMvD)
88PlayerController::~PlayerController() {
Logger LOG_DEFAULT
Default log object.
#define SET_DEFAULT_SUBCLASS(def, set)
Registers classes as the default subobject for its class.
Camera wrapper for rendering.
static GameInstance * get()
Gets singleton instance.
World * GetWorld() const
Gets world object.
Main managing class for the player, controlling interactions and non-local behavior.
virtual void SetupInputBindings()
Called automatically to bind player inputs to InputController.
virtual void Tick(float dt) override
Update tick event.
Camera * GetCamera() const
Gets assigned Camera.
Player * GetPlayer() const
Gets assigned Player.
User controllable character.
IInputController * GetInputController() const
Gets input controller.
static PotatoEngine & Get()
Global access to engine object.
void SetTicking(bool isEnabled)
Sets tick state for object.
virtual void Tick(float dt)
Update tick event.
ActorClass * SpawnActor()
Spawns Actor into world.
Standard 2-dimensional vector.