Project1

标题: 求提高敌人寻路方法的脚本 [打印本页]

作者: xiarongshan    时间: 2008-6-14 19:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: jbfc    时间: 2008-6-14 19:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-6-14 19:28
以下引用jbfc于2008-6-14 11:26:20的发言:

AI跟寻路有关系吗???

新手飘过


AI 里 包含 寻路。
作者: xiarongshan    时间: 2008-6-14 19:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: jbfc    时间: 2008-6-14 19:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiarongshan    时间: 2008-6-14 19:35
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-6-14 19:37
记得 AI 里有一个很重要的一个算法是 遗传算法 。

但是不知道在RM里怎么用?

作者: jbfc    时间: 2008-6-14 19:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiarongshan    时间: 2008-6-14 19:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: link006007    时间: 2008-6-14 19:41
RM 的 A Star 不是已经有了?
虽然没用过, 不过如果是真的A Star, 那就已经是 '最短路径算法' 了
作者: jbfc    时间: 2008-6-14 19:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: jbfc    时间: 2008-6-14 19:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiarongshan    时间: 2008-6-14 19:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: jbfc    时间: 2008-6-14 19:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: link006007    时间: 2008-6-14 20:22
以下引用jbfc于2008-6-14 11:48:32的发言:
A STAR是A*算法吗


以下引用xiarongshan于2008-6-14 11:44:37的发言:
那就请去修改接近的算法吧,然后再我的游戏里测试成功了即可

我没那能力  XD
作者: dbshy    时间: 2008-6-14 21:16
A*寻路可以改进,增加启发信息就行,这都是理论,上机很复杂

悬赏10VIP有希望
作者: xiarongshan    时间: 2008-6-14 22:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: 电子最终龙    时间: 2008-6-14 22:34
记得某本RPG教科书上说过,提高AI最好的办法就是“把所有可以进行的行动都试一次”
移动距离扣分,伤害和治疗加分,然后算出积分最高的作为最后行动。
理论仅供参考- -|||
作者: 八云紫    时间: 2008-6-14 22:35
以下引用电子最终龙于2008-6-14 14:34:15的发言:

记得某本RPG教科书上说过,提高AI最好的办法就是“把所有可以进行的行动都试一次”
移动距离扣分,伤害和治疗加分,然后算出积分最高的作为最后行动。
理论仅供参考- -|||


就是设定一个 合理的 评估函数 么?
作者: IamI    时间: 2008-6-14 22:37
以下引用八云紫于2008-6-14 14:35:17的发言:


以下引用电子最终龙于2008-6-14 14:34:15的发言:

记得某本RPG教科书上说过,提高AI最好的办法就是“把所有可以进行的行动都试一次”
移动距离扣分,伤害和治疗加分,然后算出积分最高的作为最后行动。
理论仅供参考- -|||



就是设定一个 合理的 评估函数 么?

看到能碰上主角的路径则9999= =
其实这个游戏本来就是测试AI算法和脑残程度的不二选择,任何游戏制作之路,这个游戏是第三步。
作者: 柳之一    时间: 2008-6-15 00:16
以下引用dbshy于2008-6-14 13:16:55的发言:

A*寻路可以改进,增加启发信息就行,这都是理论,上机很复杂

悬赏10VIP有希望


一点也不复杂,没有悬赏10vip的话,是不会接这个任务的。主要是现在忙着做游戏。

70行之内就可以搞定,还包括注释,而且保证设置简单,不掉帧数 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: dbshy    时间: 2008-6-15 03:18
以下引用柳之一于2008-6-14 16:16:59的发言:


以下引用dbshy于2008-6-14 13:16:55的发言:

A*寻路可以改进,增加启发信息就行,这都是理论,上机很复杂

悬赏10VIP有希望



一点也不复杂,没有悬赏10vip的话,是不会接这个任务的。主要是现在忙着做游戏。

70行之内就可以搞定,还包括注释,而且保证设置简单,不掉帧数



高人,能给点思路吗
作者: 这LINK不劫狱    时间: 2008-6-15 03:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: dbshy    时间: 2008-6-15 03:35
以下引用这LINK不劫狱于2008-6-14 19:19:56的发言:

给他10VIP  让他写出来不久好了


LZ给10VIP,让大家都提高点水平,话说我对搜索有关的都比较苦手
作者: xiarongshan    时间: 2008-6-15 04:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: 这LINK不劫狱    时间: 2008-6-15 04:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: 劍之飛龍☆    时间: 2008-6-15 04:25
关于AI,我曾经想过,用坐标的方法
作者: xiarongshan    时间: 2008-6-15 04:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: 美兽    时间: 2008-6-15 07:20
标准的曼哈顿距离启发,核心部分100行左右,实际根据RUBY特有的语法灵活性做修改,可浓缩在50行以内。
http://rpg.blue/web/htm/news457.htm
作者: xiarongshan    时间: 2008-6-15 15:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: 柳之一    时间: 2008-6-16 06:08
以下引用美兽于2008-6-14 23:20:17的发言:

标准的曼哈顿距离启发,核心部分100行左右,实际根据RUBY特有的语法灵活性做修改,可浓缩在50行以内。
http://rpg.blue/web/htm/news457.htm


正解。

基本上寻路都用这个脚本的思路。而且如果对于rm的4方向寻路来说,可以更有效率,可惜现在是伸手党时代啊。

作者: link006007    时间: 2008-6-16 06:41
我想不出什么好的方法  但是就是觉得那个方法不怎么样{/gg}
作者: dbshy    时间: 2008-6-16 07:24
以下引用link006007于2008-6-15 22:41:14的发言:

我想不出什么好的方法  但是就是觉得那个方法不怎么样


同感,曼哈顿距离对8方向就不咋的

作者: 美兽    时间: 2008-6-16 07:56
那可以用对角线距离做启发函数。
作者: xiarongshan    时间: 2008-6-21 03:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: stair    时间: 2008-7-2 21:11
LZ是做ARPG吗?这个脚本行不



class Game_Character
def enemy_ai(atk)
  damage = atk - ($game_party.actors[0].pdef / 2)
  damage = damage > 0 ? damage : 0
  x1 = $game_player.x > @x ? $game_player.x - @x : @x - $game_player.x
  y1 = $game_player.y > @y ? $game_player.y - @y : @y - $game_player.y
if x1 > 5 || y1 > 5   # 当距离大于5时
move_type_random # 随机移动(此函数可在默认的Game_Character内找到)
return # 因为没有再执行下去的必要,所以此处使用return
end
if x1 <= 1 && y1 <= 1 # 当距离为1时(角色周围的8个格子)
turn_toward_player # 面向角色(因为要攻击嘛,总不可能背对着人攻击吧……)
else
move_type_toward_player # 接近主角
return # ......
end
end
end
作者: ★_茄孓    时间: 2009-6-12 08:00
我的寻路是根据敌人离主角的远近以后
让敌人是接近主角还是随机移动。不知道可以不
http://rpg.blue/upload_program/files/事件运动_93906747.rar




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1