地形移动如何实现



  • 触发一个开关使一块地板和地板上的东西一起移动



  • 设置地板图块以做出地板图块移动的话,用两次这个动作设置图块,就能造出图块动了一整格的效果了: 145965f5-55d4-4417-b174-d84e832166c3-image.png 但是你要地板跟地板上的东西一起移动,其实这个功能用起来反而很麻烦,我个人比较建议这个可移动的地板一开始就是一个独立的精灵对象而不是tilemap对象的图块,这样移动起来也比较方便,也可以做像素级的逐渐移动效果,而不是以整个块为距离跨度的移动效果。



  • @欧拉欧拉 您说的我理解了,确实本来也打算用精灵做地板。但是怎么实现[碰触开关→识别地板上有哪些东西→地板上的东西一起移动]这件事呢?



  • @kp_L 触碰开关(当【角色】与【开关】碰撞时) 识别地板上有哪些东西(可以用同类组,把可能跟地板产生这个交互的对象都归到这个同类组中,然后事件表就可以写:当【地板】与【交互物同类组】重叠时) 地板上的东西一起移动(给【交互物同类组】加一个绑定能力,绑定在地板上,然后移动地板即可) 以上整个流程需要结合在一起来写,大致如下(仅针对只有单个地板实例的情况): 92ee80d9-db00-4d2a-a609-6859f73a523d-image.png



  • @欧拉欧拉 谢谢了,我研究一下



  • 还需要最后一个“反复横跳”的功能 就是碰一次开关,地板从A到B,再碰一次,从B到A。这个是不是做不到了……



  • @欧拉欧拉 微信截图_20200720204231.png 又来麻烦您了= =不出意外的话是最后一个问题

    想要实现的功能: 1、人物不能走过没有地板的路,石板移动过去以后人物可以经过 2、穿过开关后石板移动,反复穿过可以反复移动



  • @kp_L地形移动如何实现 中说:

    能走过没有

    1、人物不能走过没有地板的路,石板移动过去以后人物可以经过 (可以在下图两个位置放一个不透明度为0的精灵,加上刚体,然后用绑定能力绑定在石板路上,这样石板路没移动过来前就能挡住角色了;需要注意的是如果石板路精灵用【移动到】的动作移动的话,可能会卡住,因为这类动作碰到刚体会停下,所以需要调整好透明精灵的尺寸,或是把石板路精灵去掉“碰撞停止”的属性勾选) 5917a631-c963-47e1-b083-33b27f97a08c-image.png 2、穿过开关后石板移动,反复穿过可以反复移动 (可以加一个变量来判断开关状态,例如 当【角色】碰撞【拉杆】时,在子事件位置分成两条事件来判断,分别判断当前变量处于何种值,给对应的值指定对应的移动目的地,并切换该变量的值,大致格式如下图) 35527863-182e-4cd6-9403-64de3149fb87-image.png 剩下的就看还需不需要进一步的处理,例如,这个【穿过】开关,是不是必定要从下图的红框位置到绿框位置(或反过来),如果是,这需要再进一步设计拉杆事件的触发方式,不能仅用单纯的【碰撞】条件,如果不需要,基本上以上思路就够用了。 c5a35cde-8bf8-4ff5-9459-956ca8b654ce-image.png



  • @欧拉欧拉 谢谢神仙



  • @欧拉欧拉 请问碰撞是一个一次性事件吗?全局变量在第一次碰撞时可以从1改为0,但是以后无论怎么碰撞都不能从0改回1了



  • @欧拉欧拉 又可以了。很多事件条目都需要重启唤境才能生效,好几次了原因不明= =
    本来失效的功能怎么都启用不了,重开一次就好了
    我还以为是哪儿写的不对,整郁闷了



  • @kp_L 🤔 没遇过这种情况,会不会是浏览器缓存导致的?碰撞的话,判定是两者的碰撞区域从未重叠状态变成重叠状态的一瞬间,就视为碰撞,之后需要互相离开直到变成未重叠后,才能重新触发下一次碰撞。


Log in to reply