Project1
标题:
当主角与事件的距离小于或等于2时打开独立开关A
[打印本页]
作者:
纸飞机哟
时间:
2011-2-17 18:39
标题:
当主角与事件的距离小于或等于2时打开独立开关A
本帖最后由 IamI 于 2011-2-17 19:02 编辑
如题,我想弄这种效果,于是就动手写了下脚本……注意我想做的是靠近哪个就开启哪个的。
然后,实际游戏中运用时弹错了,提示nil(大家可以放到工程的game_player中运行试试)。
然后,想请各位帮忙改正= =
脚本:
触发的距离 = 2 #在此距离内开启开关
触发的开关 = "A" #在距离内时开启的开关
for i in 1..$game_map.events.size
怪物与主角的x距离 = ($game_map.events[i].x - $game_player.x).abs
怪物与主角的y距离 = ($game_map.events[i].y - $game_player.y).abs
if 怪物与主角的x距离 <= 触发的距离 or 怪物与主角的y距离<= 触发的距离
$game_self_switches[[$game_map.map_id, $game_map.events[i].id,触发的开关]] = true
else
$game_self_switches[[$game_map.map_id, $game_map.events[i].id,触发的开关]] = false
end
end
复制代码
作者:
IamI
时间:
2011-2-17 18:42
本帖最后由 IamI 于 2011-2-17 18:42 编辑
$game_map.events 是 Hash 不是array。
用for i in $game_map.events.values
下面用i代替$game_map.events
作者:
纸飞机哟
时间:
2011-2-17 18:55
回复
IamI
的帖子
的确是不弹错了,但独立开关似乎并没有开启呢?
作者:
IamI
时间:
2011-2-17 18:59
本帖最后由 IamI 于 2011-2-17 19:01 编辑
$game_self_switches[[$game_map.map_id,
$game_map.events.id
,触发的开关]] = true
我懒得吐槽了……
Turn it to i.id
作者:
IamI
时间:
2011-2-17 19:07
没有显示神马的是你的幻觉= =v
$game_self_switches[[$game_map.map_id, i.id,触发的开关]] = true
>> $game_map.refresh
可以在这里稍微做个检查来保证不拖慢速度,但是实现是肯定可以的……
作者:
纸飞机哟
时间:
2011-2-17 19:11
回复
IamI
的帖子
是不是我插入的地方有点不对= =
我应该把这货放在那里好?
一刷新就无视判断直接开启了= =c
作者:
神蛋威武
时间:
2011-2-17 19:30
本帖最后由 神蛋威武 于 2011-2-17 19:30 编辑
其实可以不用脚本。。只要在周围的格子上都铺上事件。一旦和主角接触就打开开关。。。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X5.0