18 lines
568 B
GDScript
18 lines
568 B
GDScript
extends LimboHSM
|
|
## 空中子机(挂在 HSM/Airborne 上)。
|
|
##
|
|
## Jump(上升段)→ Fall(越过顶点开始下落)。进入时按当前竖直速度挑初始子状态:
|
|
## 起跳进来 vy > 0 → Jump;踏空掉进来 vy ≈ 0 → Fall(vy ≤ 0 一律算 Fall)。
|
|
|
|
@onready var jump: LimboState = $Jump
|
|
@onready var fall: LimboState = $Fall
|
|
|
|
|
|
func _setup() -> void:
|
|
add_transition(jump, fall, &"falling")
|
|
|
|
|
|
func _enter() -> void:
|
|
var player := get_agent() as Player
|
|
set_initial_state(fall if player == null or player.velocity.y <= 0.0 else jump)
|