feat(player): clamp permet pujar al passadís + porta tancada bloqueja via Map::collides
This commit is contained in:
1 parent
648a5932f8
commit
377e5d0b97
3 files changed
+37
-2
No files matched your search
@@ -6,6 +6,7 @@
|
||||
#include "game/entities/entity_factory.hpp"
|
||||
#include "game/entities/event_bus.hpp"
|
||||
#include "game/entities/player.hpp"
|
||||
#include "game/map/map.hpp"
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -80,6 +81,12 @@ void Door::open() {
|
||||
if (state_ != State::CLOSED) { return; }
|
||||
state_ = State::OPENING;
|
||||
setAnimation(anim_opening_);
|
||||
// Marquem el passadís com a transitable: a partir d'aquest tic
|
||||
// `Map::collides` deixa de bloquejar el rect del passadís. La
|
||||
// transició d'animació OPENING → OPEN encara dura el seu temps,
|
||||
// però la geometria ja és permeable — coherent amb el feel de
|
||||
// "la porta s'obri i el jugador pot avançar al moment".
|
||||
Map::door_open = true;
|
||||
// Edge case: si `opening` té ≤1 frame i és loop=true, mai es
|
||||
// completarà. Per força, forcem loop=false del frame únic aquí. Els
|
||||
// placeholders defineixen `loop: false` explícitament al YAML, així
|
||||
|
||||
Reference in new issue
Block a user