首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

求游戏自动走路(绕开障碍)算法,该如何解决

2012-03-28 
求游戏自动走路(绕开障碍)算法求游戏自动走路(绕开障碍)算法,不能用call鼠标点击内存地址那种方法,这个游

求游戏自动走路(绕开障碍)算法
求游戏自动走路(绕开障碍)算法,不能用call鼠标点击内存地址那种方法,
这个游戏不支持鼠标点到哪人走到哪

就是想弄一个边走路边打怪的算法,找怪打怪均已经实现了,现在需要一个走路的。
可以通过内存地址获得游戏的纵横(x,y)坐标,已实现

==============================================以下为我的实现。。
Plugin.dm.ReadInt这个是读取纵横坐标的内存地址B9CE3D8是xB9CE3DC是y
goto zg是走到一个地方就自动找怪打怪
  Call wzp()就是调用往左跑的函数。。其他类似
zflg=1 就是往左跑,zflg=0往右跑
sflg=1 就是往上跑,sflg=0 就是往下跑
==============================
Sub runRush
   
   
  If zflg = 1 Then 
  Rem jxwz
  result1 = Plugin.dm.ReadInt(dbhwnd, "B9CE3D8", 1)
  Call wzp()
  result2 = Plugin.dm.ReadInt(dbhwnd,"B9CE3D8",1)
  If result1 = result2 & sflg = 1 Then 
  result1 = Plugin.dm.ReadInt(dbhwnd,"B9CE3DC",1)
  Call wsp()
  result2 = Plugin.dm.ReadInt(dbhwnd, "B9CE3DC", 1)
  else
  If result1 = result2 Then 
  result1 = Plugin.dm.ReadInt(dbhwnd,"B9CE3DC",1)
  Call wxp()
  result2 = Plugin.dm.ReadInt(dbhwnd, "B9CE3DC", 1)
  If result1 = result2 Then 
  zflg = 0
  Goto zg
   
  End If
  Else 
  Goto zg
  End If  
  End If
  Else 
  Rem jxwy
  result1 = Plugin.dm.ReadInt(dbhwnd, "B9CE3D8", 1)
  Call wyp()
  result2 = Plugin.dm.ReadInt(dbhwnd,"B9CE3D8",1)
  If result1 = result2 & sflg = 1 Then 
  result1 = Plugin.dm.ReadInt(dbhwnd,"B9CE3DC",1)
  Call wsp()
  result2 = Plugin.dm.ReadInt(dbhwnd, "B9CE3DC", 1)
  else
  If result1 = result2 Then 
  result1 = Plugin.dm.ReadInt(dbhwnd,"B9CE3DC",1)
  Call wxp()
  result2 = Plugin.dm.ReadInt(dbhwnd, "B9CE3DC", 1)
  If result1 = result2 Then 
  If result1 = result2 Then 
  zflg = 1
  Goto zg
   
  End If
  Else 
  Goto zg
  End If  
  End If
  End If
  End If
End Sub

[解决办法]
delphi的递归最好用了。
[解决办法]
走迷宫?
一直向左转,即可
如果迷宫有循环通路,则需要记住走过的路,才能避免循环
[解决办法]
不要一直向左走啊,那样会转圈的。
[解决办法]
A*算法是最常用的,也最简单.
[解决办法]
这样的思路是不行的,效率不说,都是瞎转,而且不知道怎么走。 
解决方法:
 1. 你说了有障碍就往别的地方, 所以对了,你先找出障碍,绘制出地图;
 2. 用A星算法实现走路;

不要认为绘制地图很难的事, 只要知道障碍, 绘制黑白地图就可以了, 如黑的障碍,白的通行,得到一个黑白的BMP图片,做为游戏的地图寻路文件。 剩下的A星寻路已经都帮你实现了. 网上 搜寻 传奇2 寻路源代码

分析地图了,但有没怪这个是判断不到的,需要你另外判断,这个很难。 最差的算法,就是遇到怪后,移动到旁边,重新计算路径。

热点排行