Project1
标题:
……用脚本判断某坐标是否可以通行……
[打印本页]
作者:
fux2
时间:
2010-9-15 07:10
标题:
……用脚本判断某坐标是否可以通行……
想了一晚上也没想出来,只能来问问了……{:4_83:}
作者:
禾西
时间:
2010-9-15 10:19
Game_Character#passable?(x, y, direction)
作者:
fux2
时间:
2010-9-15 11:21
回复
禾西
的帖子
我现在就是用的这个,但不知道出什么问题了
x,y,指的是不可通行的块的坐标还是指主角坐标?顺便问方向是不是和小键盘对应的
7 8 9
4 人6
1 2 3
作者:
后知后觉
时间:
2010-9-15 11:29
Game_Map 也有一个 通行的判定
x,y 是 目标坐标
方向就是小键盘的那样.数据库->图块 里的每个元件都有一个可通行方向的设定.
作者:
fux2
时间:
2010-9-15 11:39
回复
后知后觉
的帖子
那请问我这里要是想事件撞到墙就回头该怎么写?
class Interpreter
def gmove
for ev in $game_map.events.values
case ev.name
when /绿乌龟/
if ev.name == "绿乌龟左"
unless $game_map.passable?(ev.x-1 ,ev.y,4)
ev.name = "绿乌龟右"
else
ev.move_left
end
else
unless $game_map.passable?(ev.x+1, ev.y ,6)
ev.name = "绿乌龟左"
else
ev.move_right
end
end
end
end
end
end
复制代码
作者:
禾西
时间:
2010-9-15 11:56
我想是因為name在 events[ x ].event.name 中……你讀event[ x ].name讀不到
作者:
fux2
时间:
2010-9-15 12:01
回复
禾西
的帖子
这个我重新定义过了,我想知道怎么判断前方无法通过,朝反方向走。
作者:
禾西
时间:
2010-9-15 12:23
class Interpreter
def gmove
for ev in $game_map.events.values
case ev.name
when "绿乌龟"
if ev.name == "绿乌龟左"
if $game_map.passable?(ev.x-1 ,ev.y,4)
ev.move_left
else
ev.move_right
ev.name = "绿乌龟右"
end
else
if $game_map.passable?(ev.x+1 ,ev.y,6)
ev.move_right
else
ev.move_left
ev.name = "绿乌龟左"
end
end
end
end
end
end
复制代码
估計……
作者:
fux2
时间:
2010-9-15 12:29
回复
禾西
的帖子
还是出现乌龟左右转头漂移的现象
就是不停的转变左右方向
作者:
禾西
时间:
2010-9-15 13:09
無法理解,求范例,求截圖
作者:
fux2
时间:
2010-9-15 13:40
回复
禾西
的帖子
就是该事件的朝向在下一帧总会发生改变,看起来就像摇头
作者:
fux2
时间:
2010-9-15 21:36
回复
禾西
的帖子
9小时自顶
作者:
fux2
时间:
2010-9-16 12:13
回复
禾西
的帖子
用了你改的判定,乌龟事件总会在下一帧改变走向,名字也会随帧数发生改变,就是你写的判断总在同时被满足。。。
作者:
禾西
时间:
2010-9-16 13:18
高清楚了,是刷新太频繁做成的。重点是 ev.moving?
for ev in $game_map.events.values
case ev.name
when /绿乌龟/
if ev.name == "绿乌龟左"
if ev.passable?(ev.x ,ev.y,4)
ev.move_left
elsif not ev.moving?
ev.move_right
ev.name = "绿乌龟右"
end
else
if ev.passable?(ev.x ,ev.y,6)
ev.move_right
elsif not ev.moving?
ev.move_left
ev.name = "绿乌龟左"
end
end
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1