20240人加入学习
(121人评价)
Unity初级案例 - 贪吃蛇(Unity2017.2.0)

制作于2017.12.16

价格 免费

在sh里找到canvas 的transform(定义的canvas类型是transform)

不好的方法 最后一个依次移到第一个 last方法要引入linking namespace

-1 是最后一个

[展开全文]

移动方式。

让蛇身,蛇尾移动到射脖子。

bodylist 是按照顺序排列的,就相当于是蛇身。

localPosition。 和position区别应该是坐标系使用的不同吧。

生成在圆点的问题,可以通过,生成到其他位置来解决。

标志位,就是通过bool变量啥啥的传过来,然后进行控制。

尾巴挪到头的位置。

[展开全文]

贪吃蛇移动

方法一:只移动蛇头,蛇尾移到原来蛇头位置后

1.代码:移动函数下

//使用需要引入Linq

if(bodyList.Count>0)

{

bodyList.Last().localPosition = headPos;

bodyList.Insert(0,bodyList.Last());

bodyList.Remove(bodyList.count-1);

}

 

2.将Grow()放入碰撞函数

 

3.在监视面板为蛇身图片赋值

 

4.出现问题,由于实例化后的蛇身会出现在中心区域,然后通过计算在到它该有的位置,所以需要实例化的蛇身在相机外

GameObject body = Instantiate(bodyPrefab,new Vector3(2000,2000,0),Quaterntion.identity);

 

[展开全文]

[任务16:13-处理蛇身的移动之方法一]

导入Last

直接在代码最开头加上

using System.Linq;

 

[展开全文]

list集合

bodylist.last(),需要引入新的命名空间

bodylist.insert

bodylist.Add

bodylist.RemoveAt

bodylist.count

[展开全文]

双色蛇身也可以用第一种方式,只要在每次移动后遍历所有的身体部位,刷新图片样式即可

 

  if (bodyList.Count > 0)

        {

            bodyList[bodyList.Count - 1].localPosition = headPos;

            bodyList.Insert(0, bodyList[bodyList.Count - 1]);

            bodyList.RemoveAt(bodyList.Count - 1);

 

 

            for (int i = 0; i < bodyList.Count; i++)

            {

                bodyList[i].GetComponent<Image>().sprite = bodySprites[i % 2 == 0 ? 0 : 1];

            }

 

        }

[展开全文]

让canvas获取值

最后一个挪到蛇头的

Last方法让最后一个蛇身的位置移动到蛇头的地方

Insert(待插入的位置,从哪里)

再用RemoveAt(参数选择位置)移除

 

最开始的时候没有吃食物,数组为空,有空指针

屏幕中间的蛇身让先实例化在屏幕外边

 

[展开全文]

授课教师

SiKi学院讲师

课程特色

图文(1)
视频(23)
下载资料(1)