summary refs log tree commit diff stats
path: root/src/components/map_collision.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/map_collision.cpp')
-rw-r--r--src/components/map_collision.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/components/map_collision.cpp b/src/components/map_collision.cpp index 83ad33d..432fea6 100644 --- a/src/components/map_collision.cpp +++ b/src/components/map_collision.cpp
@@ -156,15 +156,24 @@ void MapCollisionComponent::processCollision(Game& game, Entity& collider, Colli
156 if (dir == Direction::left) 156 if (dir == Direction::left)
157 { 157 {
158 collider.position.first = collision.axis; 158 collider.position.first = collision.axis;
159 collider.send(game, Message::Type::stopMovingHorizontally); 159
160 Message msg(Message::Type::setHorizontalVelocity);
161 msg.velocity = 0.0;
162 collider.send(game, msg);
160 } else if (dir == Direction::right) 163 } else if (dir == Direction::right)
161 { 164 {
162 collider.position.first = collision.axis - collider.size.first; 165 collider.position.first = collision.axis - collider.size.first;
163 collider.send(game, Message::Type::stopMovingHorizontally); 166
167 Message msg(Message::Type::setHorizontalVelocity);
168 msg.velocity = 0.0;
169 collider.send(game, msg);
164 } else if (dir == Direction::up) 170 } else if (dir == Direction::up)
165 { 171 {
166 collider.position.second = collision.axis; 172 collider.position.second = collision.axis;
167 collider.send(game, Message::Type::stopMovingVertically); 173
174 Message msg(Message::Type::setVerticalVelocity);
175 msg.velocity = 0.0;
176 collider.send(game, msg);
168 } else if (dir == Direction::down) 177 } else if (dir == Direction::down)
169 { 178 {
170 collider.position.second = collision.axis - collider.size.second; 179 collider.position.second = collision.axis - collider.size.second;