diff options
Diffstat (limited to 'src/components/map_collision.cpp')
-rw-r--r-- | src/components/map_collision.cpp | 15 |
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; |