快乐mario9 发表于 2024-9-24 23:04:15

(求解答)个人Godot使用问题集合

今天正式开始尝试使用godot引擎,然后我打算直接实操入手,就是Thunder Engine
所以一般问题都是针对Thunder Engine的
Godot版本:4.2.2

快乐mario9 发表于 2024-9-24 23:08:10

问题1:我尝试将暂停菜单支持跳跃键也可选择,但这样的问题是解除暂停后马里奥对应的事件也会触发(即跳跃)
我的做法如下:
res://engine/components/ui/generic/menu_selection.gd下,_physics_process改成
func _physics_process(delta: float) -> void:
        if !focused || !get_parent().focused: return
       
        if Input.is_action_just_pressed(trigger_action) or Input.is_action_just_pressed("m_jump"):
                _handle_select()
其他没改,但是我尝试去研究逻辑发现暂时没有什么逻辑上的问题
res://engine/objects/players/behaviors/player_physics_behavior.gd下也有对暂停进行了处理
func _physics_process(delta: float) -> void:
        if player.get_tree().paused: return
虽然不改问题也不大,但我还是想看看有没有什么好的解决方法

快乐mario9 发表于 2024-9-24 23:54:32

暂时解决,解决方案:解除后当作马里奥已经完成了跳跃
res://engine/components/pause/continue_selection.gd改为如下代码:
extends MenuSelection

@onready var pause: Control = $"../.."

func _handle_select() -> void:
        super()
        pause.toggle(false)
        Thunder._current_player._has_jumped = true

ReflexGURU 发表于 2024-9-30 22:31:15

本帖最后由 ReflexGURU 于 2024-9-30 22:32 编辑

a better but still hacky approach would be adding something like:
await get_tree().physics_frame
before the pause.toggle function execution

页: [1]
查看完整版本: (求解答)个人Godot使用问题集合