This repository has been archived on 2025-06-06. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
LotoStatek/sources/Player.cpp
2024-11-26 16:05:57 +01:00

52 lines
1.5 KiB
C++

#include "../headers/Player.h"
#include "../headers/Bullet.h"
// TODO: Podzielić na klasy Bullet i Rocket.
Player::Player(int x, int y, std::string path) : Actor(x, y, path) {
Bullet::bulletTexture.loadFromFile("../assets/img/bullet_left.png");
};
void Player::shoot() {
auto now = std::chrono::steady_clock::now();
if (std::chrono::duration_cast<std::chrono::milliseconds>(now - lastShotTime).count() >= firerate) {
bullets.emplace_back(position.x, position.y);
lastShotTime = now;
}
}
// TODO: Czy strzał prawym musi mieć osobną tablicę z pociskami?
void Player::alternate_shoot() {
auto now = std::chrono::steady_clock::now();
if (std::chrono::duration_cast<std::chrono::milliseconds>(now - lastShotTime).count() >= firerate) {
bullets.emplace_back(position.x, position.y).getSprite().scale(1.5f, 1.5f);
lastShotTime = now;
}
}
void Player::setFirerate(unsigned int firerate) {
this->firerate = firerate;
}
void Player::move(float deltaX, float deltaY) {
actorSprite.move(deltaX, deltaY);
}
void Player::moveLeft() {
move(-moving_speed, 0.0f);
position.x -= static_cast<int>(moving_speed);
}
void Player::moveRight() {
move(moving_speed, 0.0f);
position.x += static_cast<int>(moving_speed);
}
void Player::moveUp() {
move(0.0f, -moving_speed);
position.y -= static_cast<int>(moving_speed);
}
void Player::moveDown() {
move(0.0f, moving_speed);
position.y += static_cast<int>(moving_speed);
}