收集硬币:行走
本课属于 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,角色就会穿过墙壁。
挑战
简单开始 Coin Collector:让玩家移动。
- 在
player.gd中,将velocity设置为Input.get_vector("move_left", "move_right", "move_up", "move_down")乘以SPEED。 - 然后调用
move_and_slide()。保持coin.gd和main.gd不变。
按下 开始:使用方向键或 WASD 移动玩家,墙壁会挡住玩家。然后按下 检查。
亲手试试
extends CharacterBody2D
const SPEED = 200.0
func _physics_process(delta):
pass
信号与碰撞中的所有课
自己练习: Godot 在线编辑器