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; |
