24 lines
640 B
C++
24 lines
640 B
C++
#include "Arrow.hpp"
|
|
|
|
Arrow::Arrow(GameRenderer *renderer, const double x, const double y, const double angle)
|
|
: renderer(renderer), x(x), y(y), angle(angle)
|
|
{
|
|
sprite = renderer->load_sprite("./assets/arrow.png", 22, 8);
|
|
}
|
|
|
|
void Arrow::draw(const double player_x, const double player_y) const
|
|
{
|
|
renderer->draw_sprite_rotated(
|
|
sprite,
|
|
(int)(x - sprite.width / 2 + renderer->screen_width / 2 - player_x),
|
|
(int)(y - sprite.height / 2 + renderer->screen_height / 2 - player_y),
|
|
angle * 180 / M_PI
|
|
);
|
|
}
|
|
|
|
void Arrow::update()
|
|
{
|
|
x += std::cos(angle) * speed;
|
|
y += std::sin(angle) * speed;
|
|
}
|