Menu
CoddyTech

收集硬币:行走

本课属于 Coddy Godot 学习旅程的“信号与碰撞”单元。第 23 课,共 27 课。

接下来的 5 节课里,你将制作 Coin Collector。你要在房间里四处走动,收集所有金币,并在最后一枚金币消失时获胜。

游戏有 3 个脚本:

  • player.gd:你控制移动的机器人。
  • coin.gd:每枚金币都会运行这个脚本。
  • main.gd:游戏规则写在 Main 上。

首先,让角色走起来。玩家是一个 CharacterBody2D。墙壁和两个灰色方块是 StaticBody2D。你在上一个单元中编写了这个移动脚本:

func _physics_process(delta):
	velocity = Input.get_vector("move_left", "move_right", "move_up", "move_down") * SPEED
	move_and_slide()

move_and_slide() 会根据它的 velocity 移动物体,并在墙壁处停下。如果你自己更改 position,角色就会穿过墙壁。

challenge icon

挑战

简单

开始 Coin Collector:让玩家移动。

  1. 在 player.gd 中,将 velocity 设置为 Input.get_vector("move_left", "move_right", "move_up", "move_down") 乘以 SPEED。
  2. 然后调用 move_and_slide()。保持 coin.gd 和 main.gd 不变。

按下 开始:使用方向键或 WASD 移动玩家,墙壁会挡住玩家。然后按下 检查。

亲手试试

extends CharacterBody2D

const SPEED = 200.0

func _physics_process(delta):
	pass

信号与碰撞中的所有课

自己练习: Godot 在线编辑器