棋盘
Coddy Unity 3D 贪吃蛇游戏 课程的第 1 课,共 14 课。
在这门课程中,你将制作一个 3D 贪吃蛇游戏:一条由立方体组成的蛇,在从上方俯视的 15 × 15 棋盘上移动。它每次移动一格,通过方向键或 WASD 转向,吃东西、变长,并在撞到墙壁或自己的尾巴时死亡。Snake 控制蛇头;食物出现前,GameManager 保持为空。点击“开始”运行游戏;点击“检查”检查代码。
每个格子的宽度为一个单位,坐标是 -7 到 7 之间的整数。蛇不会滑行:它会在节拍到来时一次跳过一整格,两个节拍之间则保持静止。节拍由计时器控制:每帧将 Time.deltaTime 加到计时器上,当计时器达到节拍间隔时,执行操作并扣除一个节拍间隔:
timer += Time.deltaTime;
if (timer >= 0.5f)
{
timer -= 0.5f;
Step();
}扣除一个节拍间隔,而不是将计时器设为 0,可以保留超出节拍间隔的那部分帧时间,这样节拍就不会逐渐延迟。使用 tick 字段,不要使用数字。
挑战
简单让蛇头每个 tick 前进一步。
- 在
Snake中,添加private float timer; - 在
Update()中,将Time.deltaTime加到 timer 上;当timer >= tick时,从 timer 中减去 tick,并调用Step()。 - 在
Step()中,将direction加到transform.position上。
按“开始”:蛇头向右一步一步地移动,暂时会移出棋盘。然后按“检查”。
亲手试试
using UnityEngine;
public class Snake : MonoBehaviour
{
public float tick = 0.15f; // 两次移动之间的秒数
private Vector3 direction = Vector3.right;
void Update()
{
// 每隔 tick 秒,执行一次 Step()
}
void Step()
{
// 沿 direction 方向将头部移动一格
}
}
Unity 3D 贪吃蛇游戏中的所有课
自己练习: Unity 在线编辑器