以下引用霜冻之狼于2009-5-3 14:01:03的发言:
是四处留情...
[本贴由作者于 2009-5-3 14:01:42 最后编辑]
以下引用牛肉面于2009-5-3 14:40:36的发言:
我原先的思路是
开关1打开时--地形标志1的图块不可通行……
怎么弄?
以下引用牛肉面于2009-5-3 14:40:36的发言:
可是……
问题是我的地图上有数不清的这种障碍……
怎么办?
我原先的思路是
开关1打开时--地形标志1的图块不可通行……
怎么弄?
以下引用水镜风生于2009-5-3 14:47:42的发言:
不用管有多少个障碍,因为按照这种制作方法,障碍是会随着主角移动的,主角移到哪里,障碍就跟着移动到那里……
以下引用牛肉面于2009-5-3 15:45:18的发言:
谢谢你了!
而且,我想到一个最好的办法………………最简单
事件页1障碍物事件不可以通行,事件页2条件是“开关1为ON”,把允许通行打上勾………………
我怎么早没想到!光想地形标志了…………
以下引用牛肉面于2009-5-3 15:45:18的发言:
谢谢你了!
而且,我想到一个最好的办法………………最简单
事件页1障碍物事件不可以通行,事件页2条件是“开关1为ON”,把允许通行打上勾………………
我怎么早没想到!光想地形标志了…………
以下引用水镜风生于2009-5-3 14:35:28的发言:
想到个比较囧的方法:
首先弄个样子跟地面相同的事件A,不允许穿透。
【并行处理】事件——将主角XY坐标及方向代入变量——判断主角是否在车上——判断主角前方1格地形标志是否为1——若是,则将事件A移到主角前方1格——若否,将事件移动不妨碍通行的偏僻地方……
相当麻烦,觉得不好的话请无视……
[本贴由作者于 2009-5-3 14:37:27 最后编辑]
class Game_Map
#--------------------------------------------------------------------------
# ● 可以通行判定
# x : X 坐标
# y : Y 坐标
# d : 方向 (0,2,4,6,8,10)
# ※ 0,10 = 全方向不能通行的情况的判定 (跳跃等)
# self_event : 自己 (判定事件可以通行的情况下)
#--------------------------------------------------------------------------
def passable?(x, y, d, self_event = nil)
# 被给予的坐标地图外的情况下
unless valid?(x, y)
# 不能通行
return false
end
# 方向 (0,2,4,6,8,10) 与障碍物接触 (0,1,2,4,8,0) 后变换
bit = (1 << (d / 2 - 1)) & 0x0f
# 循环全部的事件
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
# 从层按从上到下的顺序调查循环
for i in [2, 1, 0]
# 取得元件 ID
tile_id = data[x, y, i]
# 取得元件 ID 失败
if tile_id == nil
# 不能通行
return false
elsif ($game_switches[12] == true and @terrain_tags[tile_id]) == 1
return false
# 如果障碍物的接触被设置的情况下
elsif @passages[tile_id] & bit != 0
# 不能通行
return false
# 如果全方向的障碍物的接触被设置的情况下
elsif @passages[tile_id] & 0x0f == 0x0f
# 不能通行
return false
# 这以外的优先度为 0 的情况下
elsif @priorities[tile_id] == 0
# 可以通行
return true
end
end
# 可以通行
return true
end
end
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |