Project1
标题:
如何提取阻挡事件的编号
[打印本页]
作者:
stella
时间:
2015-7-7 13:52
标题:
如何提取阻挡事件的编号
Game_Character3 脚本中的一段,在其中添加:当向左移动被事件阻挡,就提取阻挡事件的编号,代入一个变量。
#--------------------------------------------------------------------------
# ● 向左移动
# turn_enabled : 本场地位置更改许可标志
#--------------------------------------------------------------------------
def move_left(turn_enabled = true)
# 面向左
if turn_enabled
turn_left
end
# 可以通行的情况下
if passable?(@x, @y, 4)
# 面向左
turn_left
# 更新坐标
@x -= 1
# 增加步数
increase_steps
# 不能通行的情况下
else
# 接触事件的启动判定
check_event_trigger_touch(@x-1, @y)
end
end
作者:
芯☆淡茹水
时间:
2015-7-7 13:59
passable? 不只是判断有无事件阻拦,地图不能通行也由其判断。
作者:
亿万星辰
时间:
2015-7-7 15:27
如果你这个事件没啥具体内容的话,你不如给那个事件一个并行事件,让它往一个变量里写值就可了。
如果阻挡的事件本身是个含有具体内容的npc的话,那就通过脚本根据角色坐标及朝向判断那个坐标有哪个(
些
)事件。
作者:
汪汪
时间:
2015-7-8 20:08
Game_Map的def passable?(x, y, d, self_event = nil)
for event in events.values
# 自己以外的元件与坐标相同的情况
if event.tile_id >= 0 and event != self_event and
event.x == x and event.y == y and not event.through
# 如果障碍物的接触被设置的情况下
if @passages[event.tile_id] & bit != 0
# 不能通行
return false
# 如果全方向的障碍物的接触被设置的情况下
elsif @passages[event.tile_id] & 0x0f == 0x0f
# 不能通行
return false
# 这以外的优先度为 0 的情况下
elsif @priorities[event.tile_id] == 0
# 可以通行
return true
end
end
end
这些里面,提取不能通行时的事件id就好
作者:
stella
时间:
2015-7-9 16:07
认可四楼吧
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1