感觉老师的这个贪吃蛇程序在控制蛇运动方向存在很大的问题,鼠标点击位置是相对于屏幕正中央的。这样如果遇到一种情况:蛇往左运动,而且蛇整个身体在屏幕正中心的左侧,当用户想让蛇向下转弯时,一般用户会点击蛇的下方,而这时如果x坐标的绝对值大于y,并且这时x是负的,那么不管怎么点击下方,蛇会一直向左移动,不会改变方向,这样游戏体验就很差。个人感觉如果用蛇头作为参考点更好一些,只是感觉可能消耗的的性能更多。
实际使用当中,项目上线不可能使用这种操作方式,换成四个按钮来操作更人性话,还不容易出错。这是方案一
其次,你可以绝对值运算取消。直接判断正负值加上一个偏移量,cocos有一个delta函数可以获取。函数名可能是错的,不太记得清了,查下API。 这是方案二。
在屏幕上算一下就知道了。老师说的只是其中一种最简单的算法。