變量的作用域
全局變量,局部變量,導出變量(可以在檢查器當中快速查看)
為玩家添加移動動畫?
現在游戲的玩家還只是在滑行,我們需要再添加玩家每個方向上的移動效果
刪除原先的Item節點,創建一個動畫精靈節點
如何顯示動畫幀
創建一個動畫幀?
左側是動畫列表,右側是每個動畫的具體內容
將精靈表拆分成單獨的動畫
將資源添加進來
添加你需要的動畫?
移動速率:每秒播放多少幀
同理可以添加新的動畫,注意fps要保持一致
動畫有了,但是什么時候播放他們呢?
使用代碼來控制其執行流程,也就是什么時候執行,執行什么的問題
引用其他的節點?
現在動畫位于動畫節點里面,人物如果想要訪問該節點資源的話,需要使用$符號來引用該節點
記得將玩家添加到游戲場景當中:
將game_scene場景作為主場景運行,設置錯了可以去項目配置里面修改
但是運行之后,玩家雖然能正常移動了,但是玩家一走就停不下來了
解決方案:判斷速度是否為0,為0就不走了
人物滑行問題的解決
新的問題:單獨的前、后、左、右都沒問題了,但是如果2個方向同時按下的話,人物會滑行
這是因為if語句2個條件都成立,2個動畫會同時被播放
改進:使用if..elif...else語句
改進后的代碼:
func _process(delta: float) -> void:var move_vector:Vector2=Input.get_vector("move_left","move_right","move_up","move_down")velocity = move_vector * move_speedif velocity.x > 0:$AnimatedSprite2D.play("move_right")elif velocity.x < 0:$AnimatedSprite2D.play("move_left")elif velocity.y < 0:$AnimatedSprite2D.play("move_up")elif velocity.y > 0:$AnimatedSprite2D.play("move_down")else:$AnimatedSprite2D.stop()move_and_slide()
這樣我們的玩家就比較完美地移動起來了:
2d3
okok,今天的你就到此為止吧,明天還要接著🐺啊!🎈🎈🧡