Menu
CoddyTech

棋盘

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 字段,不要使用数字。

challenge icon

挑战

简单

让蛇头每个 tick 前进一步。

  1. 在 Snake 中,添加 private float timer;
  2. 在 Update() 中,将 Time.deltaTime 加到 timer 上;当 timer >= tick 时,从 timer 中减去 tick,并调用 Step()。
  3. 在 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 在线编辑器