Godot 2D Top Down 玩家控制 / (移動)程式碼
Godot 有四種主要類型的實體節點
- Area2D 用來偵測實體的重疊,但不處理衝突,可以用來偵測進出特定區域,促發互動、拾取道具等
- CharactetBody2D 用來偵測碰撞並可使用功能來控制移動並創建角色控制器
- RigidBody2D 模擬物理的節點,可以碰撞、彈跳、掉落等
- StaticBody2D 靜態障礙物,可用於牆壁或地板
首先於 專案 > 專案設定 > 輸入映射 建立動作
接著建立場景與節點
建立 1 個 Area2D,並加入 2 個子節點,Sprite2D 與 CollisionShape2D
CollisionShape2D 旁會出現驚嘆號是因為我們沒有對他進行設定 Shape
設定 Sprite2D
選擇 Sprite2D
在屬性面板將圖片置入 Texture 內
選擇 CollisionShape2D 進行設定 Shape
選擇 CollisionShape2D
在屬性面板的 Shape 設定為 Circle
調整 CollisionShape2D 的 Shape 大小
將節點 Area2D 重新命名 Player,然後加入腳本
使用物理偵
extends Area2D
@export var max_speed := 600.0
var velocity := Vector2(500, 0) ## 移動的方向
## 物理偵 每秒(delta) = 0.01666666666667
func _physics_process(delta: float) -> void:
var direction := Vector2(0,0)
direction.x = Input.get_axis("move_left","move_right")
direction.y = Input.get_axis("move_up","move_down")
if direction.length() > 1.0 :
direction = direction.normalized()
velocity = direction * max_speed ## 速度 = 方向 * 最高速度
position += velocity * delta ## 位置 += 移動的速度與方向 * 每秒(delta)
就可以建立最基本的角色移動了!
留言