RType
Move.cpp
Go to the documentation of this file.
1 /*
2 ** EPITECH PROJECT, 2023
3 ** RTYPE
4 ** File description:
5 ** Move.cpp
6 */
7 
8 #include "Move.hpp"
9 #include "SFML/Window/Keyboard.hpp"
10 
11 /**
12  * @brief update, update the move
13  * @param event
14  * @param component
15  */
16 void Move::update(std::shared_ptr<Event> event, std::shared_ptr<IComponentRType> component)
17 {
18  auto drawable = std::dynamic_pointer_cast<Drawable>(component);
19  std::string attribute = component->getAttribute();
20  if (drawable == nullptr || event == nullptr || attribute != "player " + std::to_string(event->id))
21  return;
22 
23  float speed = 5;
24  auto [x, y] = drawable->getPosition();
25  if (event->key == sf::Keyboard::Key::Up)
26  y -= speed;
27  if (event->key == sf::Keyboard::Key::Down)
28  y += speed;
29  if (event->key == sf::Keyboard::Key::Left)
30  x -= speed;
31  if (event->key == sf::Keyboard::Key::Right)
32  x += speed;
33  drawable->setPosition({x, y});
34 }