如何检查鼠标是否在移相器 3 中的游戏对象上?
How to check if the mouse is over a gameObject in phaser 3?
我有一个游戏对象(特别是一个矩形)。我只想在将鼠标悬停在矩形上时显示跟随鼠标的文本。
我尝试使用 rectangle.on('pointover', function(pointer) {...})
侦听器,但它只能捕获初始鼠标悬停事件。它不会连续触发以允许文本跟随鼠标。
我想我的 update()
方法中需要一些东西,例如:
if (rectangle.onPointerOver()) {
update text x and y from pointer
}
但是我在 GameObject or Rectangle 上没有看到任何这样的方法。
我也知道我可以天真地找到矩形的 x 和 y 坐标以及长度和宽度,并根据指针进行检查,但 Phaser 3 必须有更好的方法。
事实证明,添加监听器是正确的做法,但我应该监听的事件是.on('pointermove', function(pointer, x, y, event) {})
。
我用过这样的东西:
gameObject.setInteractive().on('pointerdown', function(pointer, localX, localY, event){
// ...
});
我不知道如何将其更改为悬停,但也许这对某人有帮助。
我肯定迟到了。只是想为以后找到它的任何人填写一些详细信息!
您绝对可以在创建矩形时使用 pointerover
事件,就像任何其他游戏对象一样。
您只需要确保先在游戏对象上调用 setInteractive()。
const rect = this.add.rectangle(200, 200, 148, 148, 0x6666ff);
rect.setInteractive()
rect.on("pointerover", () => {
rect.setStrokeStyle(4, 0xefc53f);
});
另外,供以后参考:
我无法在文档中找到可用输入事件的完整列表,但它们在 git 存储库中。
https://github.com/photonstorm/phaser/blob/master/src/input/events/index.js
祝你好运
我有一个游戏对象(特别是一个矩形)。我只想在将鼠标悬停在矩形上时显示跟随鼠标的文本。
我尝试使用 rectangle.on('pointover', function(pointer) {...})
侦听器,但它只能捕获初始鼠标悬停事件。它不会连续触发以允许文本跟随鼠标。
我想我的 update()
方法中需要一些东西,例如:
if (rectangle.onPointerOver()) {
update text x and y from pointer
}
但是我在 GameObject or Rectangle 上没有看到任何这样的方法。
我也知道我可以天真地找到矩形的 x 和 y 坐标以及长度和宽度,并根据指针进行检查,但 Phaser 3 必须有更好的方法。
事实证明,添加监听器是正确的做法,但我应该监听的事件是.on('pointermove', function(pointer, x, y, event) {})
。
我用过这样的东西:
gameObject.setInteractive().on('pointerdown', function(pointer, localX, localY, event){
// ...
});
我不知道如何将其更改为悬停,但也许这对某人有帮助。
我肯定迟到了。只是想为以后找到它的任何人填写一些详细信息!
您绝对可以在创建矩形时使用 pointerover
事件,就像任何其他游戏对象一样。
您只需要确保先在游戏对象上调用 setInteractive()。
const rect = this.add.rectangle(200, 200, 148, 148, 0x6666ff);
rect.setInteractive()
rect.on("pointerover", () => {
rect.setStrokeStyle(4, 0xefc53f);
});
另外,供以后参考:
我无法在文档中找到可用输入事件的完整列表,但它们在 git 存储库中。
https://github.com/photonstorm/phaser/blob/master/src/input/events/index.js
祝你好运