
当AI蛇的方向为A向量,这是我们需要要求蛇往B向量这个方向移动,这时的做法就是
B-A=C;那么蛇的每帧的实际方向向量为Dir=x1*A+C*x2;然后A=Dir向量,其中x1和x2是权重,可以随便赋如果x1很小而x2很大的话 那么蛇想B向量靠近的时间就会很短 相反就会很长。这个权重还有根据具体分析,如果AI蛇检测到前面有一堵墙的话,这里检测没有采用射线检测因为射线检每帧检测会比较消耗性能。所以采用的方法是在蛇头前面添加2个碰撞器,判断是左边的碰撞器还是右边的碰撞器碰撞到障碍(其他的蛇和边界)来获得躲避的向量。接下来贴出具体的AI代码。
讯享网

SetMoveDir设置蛇移动的方向,这里使用方法是 _joystackCc.DragAction = (v) => { _playerSnake.SetMoveDir(v); };给虚拟摇杆注册DragAction,就是遥感产生了偏移后同时设置蛇的移动方向。
GameOver方法作用是通知游戏结束。
接下来就是管理有戏整体的类GameLayer,这个类的作用管理UI管理器,声音管理器(这里我还没有写声音),及玩家蛇 AI蛇管理器,这个类就是最高层的管理器了。
讯享网
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/7067.html