You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
3.4 KiB
100 lines
3.4 KiB
9 years ago
|
#include "player.h"
|
||
|
|
||
|
Player::Player(EntityManager* entityManager, Camera *camera, float x, float y) {
|
||
|
this->entityManager = entityManager;
|
||
|
this->camera = camera;
|
||
|
|
||
|
this->Load("data/gfx/player.png");
|
||
|
this->setPosition(x, y);
|
||
|
this->speed = 1.5f;
|
||
|
}
|
||
|
|
||
|
void Player::Update(sf::RenderWindow* window, InputManager inputManager) {
|
||
|
// Store currect location of the player for the Camera to use
|
||
|
sf::Vector2f cameraPosition = sf::Vector2f(this->getPosition().x, this->getPosition().y);
|
||
|
|
||
|
// Update player velocity
|
||
|
this->velocity.x = inputManager.IsPressed(InputManager::Right) * this->speed -
|
||
|
inputManager.IsPressed(InputManager::Left) * this->speed;
|
||
|
this->velocity.y = inputManager.IsPressed(InputManager::Down) * this->speed -
|
||
|
inputManager.IsPressed(InputManager::Up) * this->speed;
|
||
|
|
||
|
// Update camera position
|
||
|
// VERSION 1!
|
||
|
// if(this->getPosition().x + 16 > window->getSize().x / 2) {
|
||
|
// this->camera->MoveCamera(window, sf::Vector2f(this->velocity.x, 0));
|
||
|
// }
|
||
|
// else {
|
||
|
// camera->SetCenter(window, sf::Vector2f(window->getSize().x / 2, window->getSize().y / 2));
|
||
|
// }
|
||
|
|
||
|
// if(this->getPosition().y + 16 > window->getSize().y / 2) {
|
||
|
// this->camera->MoveCamera(window, sf::Vector2f(0, this->velocity.y));
|
||
|
// }
|
||
|
// else {
|
||
|
// camera->SetCenter(window, sf::Vector2f(window->getSize().x / 2, window->getSize().y / 2));
|
||
|
// }
|
||
|
//
|
||
|
|
||
|
// VERSION 2!
|
||
|
// if(this->getPosition().x < window->getSize().x / 2
|
||
|
// && this->getPosition().y < window->getSize().y / 2) {
|
||
|
// camera->SetCenter(window, sf::Vector2f(window->getSize().x / 2, window->getSize().y / 2));
|
||
|
// }
|
||
|
|
||
|
// if(this->getPosition().x> window->getSize().x / 2
|
||
|
// && this->getPosition().y> window->getSize().y / 2) {
|
||
|
// //this->camera->MoveCamera(window, sf::Vector2f(this->velocity.x, this->velocity.y));
|
||
|
// camera->SetCenter(window, sf::Vector2f(this->getPosition().x, this->getPosition().y));
|
||
|
// }
|
||
|
// else if(this->getPosition().x> window->getSize().x / 2) {
|
||
|
// this->camera->MoveCamera(window, sf::Vector2f(this->velocity.x, 0));
|
||
|
// }
|
||
|
// else if(this->getPosition().y> window->getSize().y / 2) {
|
||
|
// this->camera->MoveCamera(window, sf::Vector2f(0, this->velocity.y));
|
||
|
// }
|
||
|
//
|
||
|
|
||
|
// VERSION 3!
|
||
|
if(this->getPosition().x < window->getSize().x / 2
|
||
|
&& this->getPosition().y < window->getSize().y / 2) {
|
||
|
camera->SetCenter(window, sf::Vector2f(window->getSize().x / 2, window->getSize().y / 2));
|
||
|
}
|
||
|
|
||
|
if(this->getPosition().x> window->getSize().x / 2
|
||
|
&& this->getPosition().y> window->getSize().y / 2) {
|
||
|
//this->camera->MoveCamera(window, sf::Vector2f(this->velocity.x, this->velocity.y));
|
||
|
camera->SetCenter(window, sf::Vector2f(this->getPosition().x, this->getPosition().y));
|
||
|
}
|
||
|
else {
|
||
|
if(this->getPosition().x> window->getSize().x / 2) {
|
||
|
this->camera->MoveCamera(window, sf::Vector2f(this->velocity.x, 0));
|
||
|
}
|
||
|
|
||
|
if(this->getPosition().y> window->getSize().y / 2) {
|
||
|
this->camera->MoveCamera(window, sf::Vector2f(0, this->velocity.y));
|
||
|
}
|
||
|
}
|
||
|
//
|
||
|
|
||
|
// VERSION 4!
|
||
|
// @Todo
|
||
|
//
|
||
|
|
||
|
// sf::Vertex2f tempPlayerLoc;
|
||
|
// if(playerLoc.x != edge X)
|
||
|
// {
|
||
|
// tempPlayerLoc.x = playerLoc.x
|
||
|
// }
|
||
|
// if(playerLoc.y != edge Y)
|
||
|
// {
|
||
|
// tempPlayerLoc.y = playerLoc.y
|
||
|
// }
|
||
|
// view->setCenter(playerLoc)
|
||
|
}
|
||
|
|
||
|
Player::~Player()
|
||
|
{
|
||
|
|
||
|
}
|