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)

就可以建立最基本的角色移動了!

下篇: Godot 2D Top Down 玩家控制 / (移動加速度)程式碼

留言

這個網誌中的熱門文章