Skip to content

Commit 91953f4

Browse files
committed
keep player in level bounds
1 parent e2f9115 commit 91953f4

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

Galaga/MoveCommand.cpp

+9-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
#include "CharactersManager.h"
44
#include "PlayerCharacter.h"
55
#include "GameObject.h"
6+
#include "Structs.h"
7+
#include <iostream>
8+
#include <algorithm>
69

710
MoveCommand::MoveCommand(int playerIndex, glm::vec2 direction, float speed)
811
: m_PlayerIndex(playerIndex)
@@ -14,12 +17,16 @@ MoveCommand::MoveCommand(int playerIndex, glm::vec2 direction, float speed)
1417

1518
void MoveCommand::Execute()
1619
{
17-
if (PlayerCharacter * pPlayer{ CharactersManager::GetInstance().GetPlayer(m_PlayerIndex) })
20+
if (const PlayerCharacter* pPlayer{ CharactersManager::GetInstance()->GetPlayer(m_PlayerIndex) })
1821
{
19-
if (Fluffy::GameObject * pPlayerGameObject{ pPlayer->GetGameObject() })
22+
if (Fluffy::GameObject* pPlayerGameObject{ pPlayer->GetGameObject() })
2023
{
2124
glm::vec2 position{ pPlayerGameObject->GetWorldPosition() };
2225
position += m_Direction * (m_Speed * Fluffy::FluffyTime::DeltaTime());
26+
27+
const float halfSpriteSize{ pPlayer->GetSpriteSize().x / 2.0f };
28+
position.x = std::clamp(position.x, halfSpriteSize, SCREEN_SIZE.x - halfSpriteSize);
29+
2330
pPlayerGameObject->SetWorldPosition(position);
2431
}
2532
}

0 commit comments

Comments
 (0)