Project1

标题: 如何制作:推箱子到坑然后通行? [打印本页]

作者: CCD0645    时间: 2017-11-8 06:05
标题: 如何制作:推箱子到坑然后通行?
本帖最后由 CCD0645 于 2017-11-8 06:25 编辑

想必很多游戏都有这种例子,把一个箱子推到一个坑上,然后此坑变得可以通行。


但RM做起来意外的不简单
我的思路是这样
1.有一个可以推动的箱子:箱子事件用一个与主角接触触发的事件,然后判断主角面向,移动箱子路线。推到悬崖等地方则用地形标志判断箱子是否掉下去。
2.当箱子掉下去后,箱子坐标上面的坐标通行属性变为通行,且将角色显示在事件前面。

第一步容易做,但第二步这个通行属性该怎么改?有没有事件脚本能改的?
当然,麻烦点的可以在地图这个位置改为原本通行,然后上面建一个透明不通行事件阻挡,然后当箱子到达某位置打开开关,阻挡的事件消失。但这样处理限制性太大,不能做到让人随意推箱子

所以,主要还是想问,有没有事件脚本可更改地图某坐标通行性,有没有事件脚本改变事件图形显示优先级

作者: ms0688987    时间: 2017-11-8 07:53
調用腳本直接改坐標的通行設置
作者: 未命名    时间: 2017-11-8 09:09
本帖最后由 未命名 于 2017-11-8 00:04 编辑

XP是最好魔改的了,你甚至可以让地图本身就是通行的,然后用事件设置角色图像为地图图形,然后触发箱子后就可通行。

虽然用的是MV,但我签名里的就是这么干的。
————————————————————————————————————————————————————————————————

XP的事件神奇之处就在于事件图像为图块时,优先度比地图高。



其实我建议楼主先一个个箱子单独的制作积累经验,之后再考虑做成全面的系统。
这样制作能比较自由的制作自己的特殊系统。

设置通行倒是好办,主要问题在于判断主角通行方向的问题。


RM默认不分高度,要判断上下层的通行问题十分麻烦。

相同的情况比如说桥的问题:
仍拒绝F11!三开关纯事件终决四方通行桥,无改RGSS
作者@SailCat


但会移动的箱子就复杂多了。

如果想要个全知全能的办法,没有现成的话反而可能更麻烦,再加上推箱子可能会有特殊的机制。



我想到的方法是在上下层的地方控制变量,上去时“高度=1”,下去时“高度=0”之类的。
然后根据变量设置角色的显示优先度,比如在高处的原本会被遮住的地方临时“始终显示在上面on”。
然后通行方向也跟着改。

按照地形制作好单独的一个后,再考虑不同地形批量的制作。

特殊化的制作不但能省事,还可以实现更加个性的效果,甚至制作双层的谜题。



这个双层的效果可以在上面提到的方法的基础上,判断当一个箱子向下掉落时高度是2,掉落到1时有另一个箱子在0挡着,那么打开这个箱子某个开关,让它变成附属箱子,始终在下面箱子的y-1的位置,而且优先度要高。

开关的问题可以参考:
一行脚本,独立开关变独立变量
作者@SailCat

用上面的方法会写很长的脚本,如果用XP的事件脚本框,可能会发现长度不够。
如何使事件脚本上下连接?
参考@satgo1546 的回答






作者: hys111111    时间: 2017-11-8 13:04
地图图块可以用$game_map.data[x,y,i] = tile_id来修改。
不过通行一般比较好改。

难点是角色从箱子上面通行时,箱子会遮挡角色。
需要在Sprite_Character里面用一些判断来修改箱子的z值。

作者: SailCat    时间: 2017-11-8 20:28
确实挺麻烦的
做了个范例,思路还是用自动事件做mini_scene,用Scene逻辑完全覆盖掉内建的行走逻辑。
时间所限只做了一格宽的沟,按说多格宽也行的,判定比较累人……
Project1.zip (207.56 KB, 下载次数: 85)





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1