设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
楼主: xiarongshan
打印 上一主题 下一主题

求提高敌人寻路方法的脚本

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-6
帖子
1139
31
 楼主| 发表于 2008-6-15 15:55:48 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1624
在线时间
1609 小时
注册时间
2007-8-28
帖子
3253

第3届短篇游戏大赛主流游戏组冠军第1届Title华丽大赛新人奖

32
发表于 2008-6-16 06:08:28 | 只看该作者
以下引用美兽于2008-6-14 23:20:17的发言:

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


正解。

基本上寻路都用这个脚本的思路。而且如果对于rm的4方向寻路来说,可以更有效率,可惜现在是伸手党时代啊。
“我推荐你一个游戏吧,avg的,剧情特感人”
“我擦,都是文字图片的游戏有啥好玩的,连个战斗都没有!”
“我推荐你一个游戏吧,rpg的,战斗也新颖”
“我擦,怎么米有作i弊器?“
”你不是喜欢战斗么?”
“不,我是剧情党!!”

继续阅读请点击
http://rpg.blue/blog-53316-10027.html
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
帖子
2492

贵宾

33
发表于 2008-6-16 06:41:14 | 只看该作者
我想不出什么好的方法  但是就是觉得那个方法不怎么样{/gg}
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

辉瑞中国首席研究员<

梦石
0
星屑
50
在线时间
142 小时
注册时间
2008-1-18
帖子
2129
34
发表于 2008-6-16 07:24:40 | 只看该作者
以下引用link006007于2008-6-15 22:41:14的发言:

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


同感,曼哈顿距离对8方向就不咋的
来6r就是等某位仁兄的巨坑

褴褛着身行无端,囊中羞涩空心酸。
平生几无得意事,倒塔泡面宅寝室。
惟羡隔壁高帅富,雨露春风月夜声。
青丝无处觅其踪,只有硬盘苍井空。
莫云男儿空悲愁,鸿鹄岂不天际游。
坐断天下执鹿首,千百金帛万兜鍪。
夜深忽梦某年月,再见女神欲语迟。
吊丝终有逆袭日,木耳再无回粉时。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

月下可怜人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2005-11-23
帖子
4085

第1届短篇游戏比赛亚军

35
发表于 2008-6-16 07:56:46 | 只看该作者
那可以用对角线距离做启发函数。
纵然千里外,我等雁归来。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-6
帖子
1139
36
 楼主| 发表于 2008-6-21 03:52:03 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2006-12-18
帖子
118
37
发表于 2008-7-2 21:11:59 | 只看该作者
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
好象什么都忘记了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 09:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表