| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #define _USE_MATH_DEFINES
- #include <cmath>
- #include "Player.h"
- #include <GL/freeglut.h>
- Player* Player::instance = NULL;
- Player::Player()
- {
- speed = 10;
- maxHp = 100;
- health = maxHp;
- xp = 0;
- maxXp = 100;
- level = 1;
- crystals = 0;
- }
- Player* Player::getInstance()
- {
- if (instance == nullptr)
- instance = new Player();
- return instance;
- }
- void Player::init()
- {
- instance = new Player();
- }
- Player::~Player()
- {
- if (leftWeapon)
- delete leftWeapon;
- if (rightWeapon)
- delete rightWeapon;
- }
- void Player::setCamera()
- {
- glRotatef(rotation.x, 1, 0, 0);
- glRotatef(rotation.y, 0, 1, 0);
- glTranslatef(-position.x, -position.y, -position.z);
- }
- void Player::setPosition(float angle, float fac, bool height)
- {
- if (height)
- position.y += angle*fac;
- else
- {
- position.x -= (float)cos((rotation.y + angle) / 180 * M_PI) * fac;
- position.z -= (float)sin((rotation.y + angle) / 180 * M_PI) * fac;
- }
- }
- void Player::HpDown(int damage)
- {
- int newHealth = health - damage;
- if (newHealth <= 0)
- {
- exit(0);
- }
- health = newHealth;
- }
- void Player::HpUp(int hp)
- {
- if (health != maxHp)
- {
- int newHealth = health + hp;
- if (newHealth >= maxHp)
- {
- newHealth = maxHp;
- }
- health = newHealth;
- }
- }
- void Player::XpUp(int xpUp)
- {
- float newXp = xp + xpUp;
- if (newXp >= maxXp)
- {
- newXp -= maxXp;
- levelUp();
- }
- xp = newXp;
- }
- void Player::levelUp()
- {
- level++;
- maxXp += 50;
- maxHp += 10;
- health = maxHp;
- }
|