在脚本中怎么判断主角接触的是地图元件还是事件?
如下脚本:
在class Game_Player中的
#--------------------------------------------------------------------------
# ● 接触事件启动判定
#--------------------------------------------------------------------------
def check_event_trigger_touch(x, y)
result = false
# 事件执行中的情况下
if $game_system.map_interpreter.running?
return result
end
# 全事件的循环
for event in $game_map.events.values
# 事件坐标与目标一致的情况下
if event.x == x and event.y == y
# 跳跃中以外的情况下、启动判定是正面的事件
if not event.jumping? and not event.over_trigger? and [1,2].include?(event.trigger)
event.start
result = true
end
else
Audio.se_play("Audio/SE/撞墙音乐",100,100) if xxxxx
end
end
return result
end
我做的效果是:主角撞到墙会发出SE!撞到 “人 或 其他事件”却不会,可是怎么判断呢?
红色部分应该怎么写?作者: 失去的记忆 时间: 2009-11-8 21:31
顶吖!!!!!!!作者: secondsen 时间: 2009-11-8 21:53
你的墙不会都是事件做的吧。。。。作者: 中国 时间: 2009-11-8 21:53
提示: 作者被禁止或删除 内容自动屏蔽作者: 失去的记忆 时间: 2009-11-8 22:10
绝对不是!!看图:作者: 失去的记忆 时间: 2009-11-8 22:12
图片显示不了.... 反正我做的墙是画上去的!不是事件,但效果还是一样!作者: secondsen 时间: 2009-11-8 22:13
你那个脚本严重误导人啊。。。那个是事件的判断和撞墙一点关系都没有。。。。。
我给你重新做了
Ctrl+Alt+F 全局搜索 dir4
找到
case Input.dir4
when 2 move_down
when 4 move_left
when 6 move_right
when 8 move_up
end
加他改成这样
case Input.dir4
when 2
x = @x
y = @y + 1
move_down
when 4
x = @x - 1
y = @y
move_left
when 6
x = @x + 1
y = @y
move_right
when 8
x = @x
y = @y - 1
move_up
if Input.dir4 > 0
unless $game_map.passable?(x, y, 0)
# 启动判定是正面
p 1
end
end
一幢墙就会 p 1 你把它改成 播放SE就成了作者: 失去的记忆 时间: 2009-11-8 22:26
照着你说的改了....可是效果是当角色朝上走的时候 P 1 别的方向走不会!! 怎么办?作者: secondsen 时间: 2009-11-8 22:31
unless $game_map.passable?(x, y, 0)
换成。。。我忘记考虑了点东西。。。这个和VX不一样的地方是。。。VX只有通行和不通行。。Xp要考虑那个方向不通行
unless $game_map.passable?(x, y, Input.dir4)作者: 失去的记忆 时间: 2009-11-8 22:35
脚本附上!!
case Input.dir4
when 2
x = @x
y = @y + 1
move_down
when 4
x = @x - 1
y = @y
move_left
when 6
x = @x + 1
y = @y
move_right
when 8
x = @x
y = @y - 1
move_up
if Input.dir4 > 0
unless $game_map.passable?(x, y, Input.dir4)
# 启动判定是正面
Audio.se_play("Audio/SE/撞墙音乐",100,100)
end
end
end
没错吧!可是还是一样....往上走撞墙播放SE,撞别的方向不播放!!作者: secondsen 时间: 2009-11-8 23:01
$game_map.passable?(x, y, 10 - Input.dir4)