Gamemaker Studio 2:我的角色不会在房间中过渡

时间:2018-12-06 08:47:42

标签: game-engine game-maker gml game-maker-language game-maker-studio-2

我使用从Udemy课程中学到的过渡代码,但是游戏中的角色只会过渡到第一扇门,而不会穿过其他门。

我正在使用相同的对象,但是更改了对象的创建代码。我使用变量room_start_。我用这些来选择不同的房间并在创建代码中开始位置。点击链接以查看视频游戏-(https://drive.google.com/open?id=1jCWIM3hYymgspW54EPbnUDrNQVZbY_4B)。

1 个答案:

答案 0 :(得分:0)

我对项目进行了一些摆弄,我理解了您遇到的错误,即使角色在r_sworld中有相同类型的门,但它们都发生碰撞后,角色才能穿过第一扇门,他无法返回掩码,它们都有变量...我不知道为什么您的代码无法正常工作,但是我找到了解决方案!

将代码从o_player :: o_door移至o_player :: step
通常不建议在GMS中使用碰撞事件,您应该尝试在逐步事件中尽可能多地进行操作。您可以通过在步骤事件的末尾添加o_door来替换碰撞事件:

if (place_meeting(x, y, o_door)) {
    var door = instance_place(x, y, o_door);
    room_goto(door.room_);
    global.player_start_position = door.start_;
    persistent = true;
}

这是一个陷阱。如果global.player_start_position所指定的新位置使玩家出现在目标房间的另一扇门的顶部,您将立即被传送回第一个房间。确保door.start_中的坐标永远不要太靠近其他门。

希望这会有所帮助!