134042htigqntf30mztq99.png
  5、死亡处理

  a)假设每条蛇死亡时,留下自己身体50%的资源作为尸体;(比如一个长度为100的蛇,死亡后会留下50个大点)

  b)蛇死亡时,将自己身体的每个段的坐标点进行记录,放入一个table表中;

  c)将table表中的坐标进行处理,每隔一个坐标删除一个,将t[1],t[3]....t[2n-1]的坐标删除;

  d)将保留的坐标放入一个新table表,定义为tleft;

  e)在tleft的每个坐标点生成一个大尸体点;

  备注1:

  iOS版本中,每次复活的坐标点和初始角度都不一样;而安卓版本中,每次复活的坐标点和初始角度(0°)都相同;

  iOS版本的好处是,随机性可以带来一定的变化,但坏处是,存在出生在地图边缘并且在玩家反应不及的情况下直接撞墙的可能性;而安卓版本的好处是,避免了出生就撞墙的可能,但是可能会让玩家直接复活在其他蛇的包围之中……

  备注2:

  这里会有两种处理方式:

  1、10个蛇头,每个蛇头循环遍历场上所有小点资源的坐标(当然可以采用将全场地分成若干个大区域块的方式,将遍历的范围缩小,提高效率),判断是否已吃掉;

  2、场地中所有的大、小点资源,每个都循环遍历场上所有蛇头的坐标,判断是否已被吃掉;

  这两种方式看上去每次遍历的次数好像都是“蛇头数*资源数”,我不确定哪一种的运行效率会更高。

  备注3:

  转弯角度随机范围为(30,330)而非(0,360),是为了避免180°调头的情况,因为这看上去比较奇怪。

相关阅读解读《贪吃蛇大作战》如何病毒式传播、免费榜登顶

注:本文首发于知乎专栏《光头杂货铺》,版权作者所有,未经作者允许禁止转载。



锐亚教育

锐亚教育,游戏开发论坛|游戏制作人|游戏策划|游戏开发|独立游戏|游戏产业|游戏研发|游戏运营| unity|unity3d|unity3d官网|unity3d 教程|金融帝国3|8k8k8k|mcafee8.5i|游戏蛮牛|蛮牛 unity|蛮牛