|
发表于 2006-4-23 19:03:44
|
显示全部楼层
理论上来说,是可以改改那个Game_Character 2来达到效果。。。
#--------------------------------------------------------------------------
# ● 移动类型 : 接近
#--------------------------------------------------------------------------
def move_type_toward_player(sight = 20, ai = 6)
# 求得与主角坐标的差
sx = @x - $game_player.x
sy = @y - $game_player.y
# 求得差的绝对值
abs_sx = sx > 0 ? sx : -sx
abs_sy = sy > 0 ? sy : -sy
# 如果方圆超过了视野
if abs_sx ** 2 + abs_sy ** 2 >= sight ** 2
# 随机
move_random
return
end
# 随机 0~5 的分支
case rand(ai)
when 0..3 # 接近主角
move_toward_player
when 4 # 随机
move_random
when 5 # 前进一步
move_forward
end
end
先把这段复制一份,然后做一个新的段。。。
#--------------------------------------------------------------------------
# ● 移动类型 : 接近(伪)
#--------------------------------------------------------------------------
def move_type_toward_event(event_id, sight = 20, ai = 6)
# 求得与主角坐标的差
sx = @x - $game_map.events[event_id].x
sy = @y - $game_map.events[event_id].y
# 求得差的绝对值
abs_sx = sx > 0 ? sx : -sx
abs_sy = sy > 0 ? sy : -sy
# 如果方圆超过了视野
if abs_sx ** 2 + abs_sy ** 2 >= sight ** 2
# 随机
move_random
return
end
# 随机 0~5 的分支
case rand(ai)
when 0..3 # 接近主角
move_toward_player
when 4 # 随机
move_random
when 5 # 前进一步
move_forward
end
end
这样应该可以达到让某个事件向着某个事件移动,就是你可以做一个看不到的事件(或者是看得到的),然后让某个事件(比如说青蛙),向着那个事件移动。。。只要自定义那个青蛙的移动路线为脚本move_type_toward_event(你想要青蛙接近的事件在地图上的编号,20,6),这样应该就可以了。。。
以上方法为纯理论推断制作,未经任何实验,如有不测。。。纯属自然现象。。。 [s:5] |
|