feat(hazard): nou hazard Hole — caiguda per forat amb clip rect
This commit is contained in:
1 parent
d4593d0686
commit
4da50571eb
17 files changed
+376
-15
No files matched your search
Binary file not shown.
|
After Width: | Height: | Size: 182 B |
@@ -0,0 +1,26 @@
|
||||
name: hole
|
||||
type: static_hazard
|
||||
sprite:
|
||||
path: hole.gif
|
||||
size: [16, 16]
|
||||
tile_size: [1, 1]
|
||||
collision:
|
||||
# Forat: ocupa el tile sencer (16×16). `height: 0` deixa que un salt
|
||||
# AIRBORNE el creui sense disparar el contacte (el filtre d'altura de
|
||||
# `checkPlayerCollisions` el descarta quan `jump_z_ > height`). El
|
||||
# bucle de contacte admet l'entitat per `flags.triggers_on_overlap`,
|
||||
# encara que `flags.collides` sigui false.
|
||||
size: [16, 16]
|
||||
height: 0
|
||||
flags:
|
||||
collides: false
|
||||
interactable: false
|
||||
# Avui el loader no llig el bloc `flags:` (és declaratiu); el flag
|
||||
# real es fixa al constructor C++ de `Hole`. Mantenim el camp per
|
||||
# coherència amb la resta de plantilles i per quan es cablege la
|
||||
# lectura genèrica de flags.
|
||||
triggers_on_overlap: true
|
||||
animations:
|
||||
idle: { frames: [0], fps: 1, loop: true }
|
||||
stats:
|
||||
damage: 0
|
||||
@@ -138,3 +138,9 @@ entities:
|
||||
position: [10, 7]
|
||||
- type: mummy
|
||||
position: [7, 9]
|
||||
# Forat de prova: tile de sòl pla a la galeria superior, 2 tiles a
|
||||
# l'est del punt d'aterratge del jugador (door_col=10). Lluny dels
|
||||
# sarcs i de les momies; accessible caminant cap a l'est tot just
|
||||
# després del spawn.
|
||||
- type: hole
|
||||
position: [12, 3]
|
||||
@@ -73,6 +73,16 @@ animations:
|
||||
frame_ms: [60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280]
|
||||
loop: false
|
||||
|
||||
# Mort per caiguda a un agujero (DeathCause::HOLE). Frame i durada
|
||||
# **placeholders** — pendents de Sergio: idealment l'índex de la
|
||||
# casella buida del spritesheet i una durada curta. `loop: false`
|
||||
# com `death_spinning` perquè `animationIsCompleted()` dispari el
|
||||
# respawn timer determinísticament.
|
||||
death_hole:
|
||||
frames: [15]
|
||||
frame_ms: 60
|
||||
loop: false
|
||||
|
||||
# Inèrcia de frenada en soltar la direcció. `threshold_ms` filtra
|
||||
# tocs curts (passets d'un tile sense rellisquera).
|
||||
inertia:
|
||||
|
||||
@@ -73,6 +73,16 @@ animations:
|
||||
frame_ms: [60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280]
|
||||
loop: false
|
||||
|
||||
# Mort per caiguda a un agujero (DeathCause::HOLE). Frame i durada
|
||||
# **placeholders** — pendents de Sergio: idealment l'índex de la
|
||||
# casella buida del spritesheet i una durada curta. `loop: false`
|
||||
# com `death_spinning` perquè `animationIsCompleted()` dispari el
|
||||
# respawn timer determinísticament.
|
||||
death_hole:
|
||||
frames: [15]
|
||||
frame_ms: 60
|
||||
loop: false
|
||||
|
||||
# Inèrcia de frenada en soltar la direcció. `threshold_ms` filtra
|
||||
# tocs curts (passets d'un tile sense rellisquera).
|
||||
inertia:
|
||||
|
||||
Reference in new issue
Block a user