func _process(_delta) -> void: if !DataManager.is_in_game || DataManager.is_replaying: return if Input.is_action_just_pressed("ui_down"): DataManager.append_playback("ui_down") SignalManager.down.emit() if Input.is_action_just_pressed("jump"): DataManager.append_playback("jump") SignalManager.jump_start.emit() if Input.is_action_just_pressed("jump"): SignalManager.jump_end.emit()
var move_direction = Input.get_axis("ui_left", "ui_right")
func find_cur_index(data: Array): var n = data.size() for i inrange(0, n): var item = data[i] if typeof(item) != TYPE_DICTIONARY: continue var frame := int(item.get("frame", -1)) if frame < 0: continue if frame == game_frame: return i return -1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
var cur_index = find_cur_index(level_playback["playback"]) var item = level_playback["playback"][cur_index] match item.action: "ui_left": if item.pressed: SignalManager.move_direction.emit(-1) else: SignalManager.move_direction.emit(0) "ui_right": if item.pressed: SignalManager.move_direction.emit(1) else: SignalManager.move_direction.emit(0) "jump": if item.pressed: SignalManager.jump_start.emit() "ui_down": if item.pressed: SignalManager.down.emit()