40 lines
1 KiB
C++
40 lines
1 KiB
C++
|
//
|
||
|
// Created by moonleay on 12/12/24.
|
||
|
//
|
||
|
|
||
|
#include "std_lib_inc.h"
|
||
|
#include "Player.h"
|
||
|
#include "Maze.h"
|
||
|
|
||
|
namespace game
|
||
|
{
|
||
|
Player::Player(const int target_x, const int target_y): pos(target_x, target_y)
|
||
|
{
|
||
|
// Wir brauchen keinen Inhalt in diesem Konstruktor, da wir nur die position speichern müssen
|
||
|
}
|
||
|
|
||
|
PositionVector Player::get_pos() const
|
||
|
{
|
||
|
return this->pos;
|
||
|
}
|
||
|
|
||
|
void Player::update_position(const PositionVector target)
|
||
|
{
|
||
|
this->pos = target;
|
||
|
}
|
||
|
|
||
|
|
||
|
void Player::move(Maze maze, const PositionVector move_vector)
|
||
|
{
|
||
|
// Berechne die Position, zu der der Spieler sich bewegen möchte
|
||
|
const PositionVector target_position = PositionVector(this->get_pos().x + move_vector.x,
|
||
|
this->get_pos().y + move_vector.y);
|
||
|
|
||
|
// Bewege den Spieler zu der gewollten Position, wenn diese frei ist
|
||
|
if (maze.is_pos_free(target_position))
|
||
|
this->update_position(target_position);
|
||
|
else
|
||
|
cout << "Bewegung nicht moeglich!\n";
|
||
|
}
|
||
|
} // game
|