GameKit  0.0.1a
C++ gamedev tools
MovementController.cpp
Go to the documentation of this file.
1 /*
2  * =====================================================================================
3  *
4  * Filename: MovementController.cpp
5  *
6  * Description:
7  *
8  * Created: 26/01/2018 01:18:19
9  *
10  * Author: Quentin Bazin, <quent42340@gmail.com>
11  *
12  * =====================================================================================
13  */
15 
19 
20 namespace gk {
21 
23  if(object.has<MovementComponent>()) {
24  auto &movement = object.get<MovementComponent>();
25 
26  if(movement.movements.size() != 0 && movement.movements.top()) {
27  movement.movements.top()->process(object);
28  }
29 
30  movement.isBlocked.x = false;
31  movement.isBlocked.y = false;
32  }
33 
34  if(object.has<CollisionComponent>()) {
35  object.get<CollisionComponent>().checkCollisions(object);
36  }
37 
38  if(object.has<MovementComponent>()) {
39  auto &movement = object.get<MovementComponent>();
40 
41  movement.isMoving = movement.v.x || movement.v.y;
42 
43  object.get<PositionComponent>() += movement.v * movement.speed;
44  }
45 }
46 
47 } // namespace gk
48 
std::unique_ptr< Movement > & top()
void update(SceneObject &object) override