Project1
标题:
怎么添加定义一个新的可通行判定
[打印本页]
作者:
stella
时间:
2014-11-13 09:31
标题:
怎么添加定义一个新的可通行判定
添加定义一个passable1?的可通行判定,当角色或事件被1~14号事件挡住时,不算作不可通行,只有被障碍物或15号以上事件挡住,才算作不可通行
比如当11号事件右边有一个2号事件,用$game_map.events[11].passable1?($game_map.events[11].x, $game_map.events[11].y, 6)脚本判断出来的结果依然是可通行的
作者:
RyanBern
时间:
2014-11-13 12:21
如果要实现这个效果的话,对1-14号事件勾选[允许穿透]。可能会有些麻烦。
作者:
stella
时间:
2014-11-13 13:21
RyanBern 发表于 2014-11-13 12:21
如果要实现这个效果的话,对1-14号事件勾选[允许穿透]。可能会有些麻烦。
如果1~14号事件不能允许穿透呢?
作者:
芯☆淡茹水
时间:
2014-11-13 16:52
在默认脚本 Game_Character 1 第 156 行: if self != $game_player
后面加一句,改成:if self != $game_player and self.id > 14 试试。
这个瞎蒙的,没试过。反正至少说可以从那里想办法。
作者:
wolves
时间:
2014-11-23 12:43
def passable1?(x, y, d)
# 求得新的坐标
new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
# 坐标在地图以外的情况
unless $game_map.valid?(new_x, new_y)
# 不能通行
return false
end
# 穿透是 ON 的情况下
if @through
# 可以通行
return true
end
# 移动者的元件无法来到指定方向的情况下
unless $game_map.passable?(x, y, d, self)
# 通行不可
return false
end
# 从指定方向不能进入到移动处的元件的情况下
unless $game_map.passable?(new_x, new_y, 10 - d)
# 不能通行
return false
end
# 循环全部事件
for event in $game_map.events.values
# 事件坐标于移动目标坐标一致的情况下
if event.id < 14
return true
end
if event.x == new_x and event.y == new_y
# 穿透为 ON
unless event.through
# 自己就是事件的情况下
if self != $game_player
# 不能通行
return false
end
# 自己是主角、对方的图形是角色的情况下
if event.character_name != ""
# 不能通行
return false
end
end
end
end
复制代码
Game_Character中加入方法,没测试。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1