Skip to content

Instantly share code, notes, and snippets.

@Rapptz
Created November 8, 2012 01:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Rapptz/caeb610edfe89031d961 to your computer and use it in GitHub Desktop.
Save Rapptz/caeb610edfe89031d961 to your computer and use it in GitHub Desktop.
Player.h
#ifndef GAME_PLAYER_H
#define GAME_PLAYER_H
#include <SFML/Graphics.hpp>
#include <string>
class Player {
protected:
size_t x;
size_t y;
public:
double speed;
sf::Sprite sprite;
size_t attack;
size_t defense;
int health;
int mana;
//Constructor
Player(sf::Texture& texture, const std::string& filename, size_t ux = 100, size_t uy = 30, double uspeed = .2);
//Moves the player
void move();
void setPosition(size_t X, size_t Y);
sf::Vector2f getPosition();
};
#endif //GAME_PLAYER_H
#include "Player.h"
#include "GlobalVar.h"
Player::Player(sf::Texture& texture, const std::string& filename, size_t ux, size_t uy, double uspeed): x(ux), y(uy), speed(uspeed) {
if(texture.loadFromFile(filename))
sprite.setTexture(texture);
sprite.setPosition(ux,uy);
mana = 50;
health = 100;
attack = 10;
defense = 5;
}
void Player::move() {
// Moves the sprite.
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
sprite.move(speed,0);
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
sprite.move(-speed,0);
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
sprite.move(0,speed);
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
sprite.move(0,-speed);
//Checks for collision for the border
sf::Vector2f hold = sprite.getPosition();
sf::FloatRect coord = sprite.getGlobalBounds();
if(hold.x < 0) {
hold.x = 0;
sprite.setPosition(hold);
}
else if(hold.y < 0) {
hold.y = 0;
sprite.setPosition(hold);
}
else if(hold.x + coord.width> screen::width) {
hold.x = screen::width - coord.width;
sprite.setPosition(hold);
}
else if(hold.y + coord.height > screen::height) {
hold.y = screen::height - coord.height;
sprite.setPosition(hold);
}
}
void Player::setPosition(size_t X, size_t Y) {
sprite.setPosition(X,Y);
}
sf::Vector2f Player::getPosition() {
return sprite.getPosition();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment