【问题标题】:Gamemaker Studio 2: My character won’t transition through roomsGamemaker Studio 2:我的角色不会在房间中转换
【发布时间】:2019-07-23 18:38:03
【问题描述】:

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

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

【问题讨论】:

  • 您好,不幸的是,上传您的整个项目并没有多大帮助,因为它只对拥有 Gamemaker Studio 的人开放。即便如此,仅显示代码的几部分,例如在本例中,您如何进行转换的代码对我们更有帮助。 :)
  • 这个角色是一个持久的对象还是你每次都在每个不同的新对象中创建它?
  • 上传一些代码,帮助我们更有效地回答问题。目前下载整个游戏没有帮助。

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


【解决方案1】:

我对项目进行了一些修改,我理解您遇到的错误,角色通过第一扇门后,即使在 r_sworld 中有相同类型的门,他也无法返回,它们都有碰撞面具,它们都有变量......我不知道为什么你的代码不起作用,但我找到了解决方案!

将代码从 o_player::o_door 移动到 o_player::step
通常不建议在 GMS 中使用碰撞事件,您应该尽可能多地在 step 事件中进行操作。您可以通过在步骤事件的末尾添加以下内容来将您的碰撞事件替换为 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_ 中的坐标永远不会离其他门太近。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2021-09-21
    • 2020-05-22
    • 1970-01-01
    • 2020-03-16
    • 2021-10-09
    • 2018-08-18
    • 2022-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多