【问题标题】:GameMaker Studio mouse click event goes wrong?GameMaker Studio 鼠标点击事件出错?
【发布时间】:2018-12-19 17:29:01
【问题描述】:

我已经使用 Gamemaker Studio 几个月了,但仍在学习它。今天我遇到了鼠标点击操作的麻烦:

我有 2 个对象,分别称为 button_1 和 button_2。我的主要目的是当玩家点击button_1时,它会被button_2替换,然后点击button_2,它会被button_1替换。

所以我这样做了:

按钮_1: 事件:鼠标“左键” -> 销毁自身并在同一位置创建对象 button_2

按钮_2: 事件:鼠标“左键” -> 销毁自身并在同一位置创建对象 button_1

但是,当我单击 button_1 时,它会立即显示 button_1。我猜这个问题是由位置引起的,因为当我将 2 个按钮彼此远离时,没关系,但如果它们重叠,共享区域就会出现问题。

你有没有遇到过类似的问题?有什么办法解决吗?

我正在学习英语,如果我的解释不清楚,请见谅。提前谢谢!

【问题讨论】:

    标签: mouseevent game-maker


    【解决方案1】:

    尝试使用“左释放”动作而不是“左键”。

    我发现“左键”动作一次触发3次,所以我更喜欢使用“左释放”动作,因为它只触发一次。

    【讨论】:

    • 事实上,只要您按住按钮,“左键”就可以工作,所以每秒的次数与 room_speed 一样多。例如,默认情况下它是每秒 30 步,所以这个事件每 0.03 秒发生一次。确定点击需要更多时间,所以会被抓到好几次:) 测试一下,做一个简单的游戏,添加创建变量“counter = 0”,然后在事件“左键”设置“counter + +;",然后在屏幕上将其绘制为字符串。单击对象,您会注意到,它通常不止一个。
    • 感谢您的澄清。我认为它像你说的那样工作,但他检查过。
    【解决方案2】:

    在按钮中使用mouse_clear(button),点赞

    mouse_clear(mb_left);
    instance_create(x, y, button_2);
    instance_destroy();
    

    【讨论】:

      【解决方案3】:

      你做到了:

      • button_1: 事件鼠标左键 -> 销毁自身并在同一位置创建对象 button_2
      • button_2: 事件鼠标左键 -> 销毁自身并在相同位置创建对象 button_1

      你的错误:

      • 事件应该是“左按”,而不是左键

      我也推荐:

      • 在销毁旧实例之前创建新实例

      【讨论】:

        【解决方案4】:

        正如其他人所提到的,您应该使用“Left Released”事件而不是“Left button”。

        此外,您应该检查您是否仅在房间的同一位置拥有同一对象的实例。我遇到了同样的问题(触发了多次点击事件),这是由 2 个或更多对象堆叠每个触发事件引起的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-29
          • 2014-12-13
          • 1970-01-01
          • 1970-01-01
          • 2019-01-04
          • 1970-01-01
          相关资源
          最近更新 更多