2024年0java基础写贪吃蛇

0java基础写贪吃蛇今天接着上个讲 上次讲到了玩家蛇和 BaseSnake 类了 下面讲讲 AI 蛇了 这里我写的 AI 是比较简单了 AI 蛇的 AI 逻辑是这样的 蛇主要存在 2 中状态 一种是漫游状态 漫游状态每隔多少秒 给蛇一个方向 然后蛇慢慢的旋转到给的方向 这里用的方法是前面讲到的行为那一节 简单的画个图解释一下 当 AI 蛇的方向为 A 向量 这是我们需要要求蛇往 B 向量这个方向移动 这时的做法就是 B A C

大家好,我是讯享网,很高兴认识大家。



unity贪吃蛇设计思路_c#

当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蛇管理器,这个类就是最高层的管理器了。

讯享网
小讯
上一篇 2025-01-02 20:12
下一篇 2024-12-26 09:28

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/7067.html