《围住神经猫》的逃跑路径算法
2015-08-09 16:55
1116 查看
关于《围住神经猫》的逃跑路径算法
《围住神经猫》是去年在微信上挺火的H5游戏,在学习unity3d的过程中我就想把这个游戏用我学习到的unity3d知识重新编写。神经猫的逃跑路径有6个方向,分别是左上,右上,左,右,左下,右下,如图A。当神经猫到达边界点(最左,最右,最上,最下的点)时,则神经猫成功逃脱。
图A
其中橙色圆点为不能到达点。如果在神经猫的逃跑路径上有橙色圆点,则称这条路径为不可通路径,反之为可通路径。逃跑算法的第一步是在6个逃跑方向寻找可通路径,再从可通路径中选择最短的路径(神经猫到达边界点最短距离),在图B中红色的方向为可通路径,白色的方向为不可通路径。
图B
当同时存在多条最短可通路径时,人为的给神经猫设置优先级(我设置的优先级是左上,右上,左,右,左下,右下)。
当神经猫的6个逃跑方向都为不可通路径时。如图C,则在6个逃跑方向中选择神经猫可行走最远距离的为逃跑路径,图D的红色方向。因为这样可在一定程度上避免神经猫被橙色点包围。
图C
图D
《围住神经猫》是去年在微信上挺火的H5游戏,在学习unity3d的过程中我就想把这个游戏用我学习到的unity3d知识重新编写。神经猫的逃跑路径有6个方向,分别是左上,右上,左,右,左下,右下,如图A。当神经猫到达边界点(最左,最右,最上,最下的点)时,则神经猫成功逃脱。
图A
其中橙色圆点为不能到达点。如果在神经猫的逃跑路径上有橙色圆点,则称这条路径为不可通路径,反之为可通路径。逃跑算法的第一步是在6个逃跑方向寻找可通路径,再从可通路径中选择最短的路径(神经猫到达边界点最短距离),在图B中红色的方向为可通路径,白色的方向为不可通路径。
图B
当同时存在多条最短可通路径时,人为的给神经猫设置优先级(我设置的优先级是左上,右上,左,右,左下,右下)。
当神经猫的6个逃跑方向都为不可通路径时。如图C,则在6个逃跑方向中选择神经猫可行走最远距离的为逃跑路径,图D的红色方向。因为这样可在一定程度上避免神经猫被橙色点包围。
图C
图D
相关文章推荐
- 轻量级文本编辑器,Notepad最佳替代品:Notepad++
- Android Format的使用
- Linux下用php调用C接口(扩展)的资料
- 管道,信号量,共享内存,socket的实际使用场景和NSPipe管道的使用
- jQuery中的Ajax
- (算法:二分查找)在排序数组中,找出给定数字出现的次数
- 2015公务员工资改革消息:广州人社局长称基层公务员工资肯定会增不少
- Java的date和以datetime为字段的数据库的处理办法
- hdu-2114-Calculate S(n)
- 为什么你宁愿每周工作90小时,也不做任何改变?(转载)
- 使用代码为textview设置drawableLeft
- 大苏格兰2015年中学等级考试的一道初等数学题
- Java查看List扩容后的容量
- 10.1——pair,map,set,multimap,multiset
- OpenGl编程指南例2.4大白话分析
- MVC简单实现查询列表
- Leetcode52 N-Queens II
- MongoDB查询
- sp_send_dbmail参数设置
- 常见MFC UI界面库