——个人笔记
蛇的移动
-
经典的贪食蛇主要功能就是移动和吃东西生长。这次主要介绍两种常用的移动方式,第一种是比较正常的就是头移动,然后后面各个身体移动上一个身体的位置。第二种头移动,身体最后一个(尾巴)移动到头原来的位置。
- 两种方法的图示:
第一种方式:头为绿色,身体为粉红,①开始是第一条,然后②头向前移动,身体就跟着移动,并且为上一个的位置,转弯也一样。这种就是移动头部,然后后面的就是移动到上一个的位置。
第二种方式:对比索引的数字,位置没有区别(达到的效果一样),但是原理完全不一样,这一种会省去了很多移动,只要移动头,然后把尾巴(身体最后的一个)移到头原来的位置。
//放在蛇头的脚本 public List<Transform> bodyList = new List<Transform>();//身体 public float velocity = 0.35f;//每次移动的间隔时间 public int step;//每次移动的步长 private int x; private int y; private Vector3 headPos;//头的位置 void Move() { headPos = gameObject.transform.localPosition; //保存下来蛇头移动前的位置 //蛇头向期望位置移动 gameObject.transform.localPosition = new Vector3(headPos.x + x, headPos.y + y, headPos.z); if (bodyList.Count > 0) { //方法一 //bodyList.Last().localPosition = headPos; //将蛇尾移动到蛇头移动前的位置 //bodyList.Insert(0, bodyList.Last()); //将蛇尾在List中的位置更新到最前 //bodyList.RemoveAt(bodyList.Count - 1); //移除List最末尾的蛇尾引用 //方法二(从后面移动方便,如果从前面移动就要记录移动前的位置再向前移动)
- 两种方法的图示: