在我的update()函數中,我使用pointerOver()來檢測指針何時位於sprite上。這通常工作正常。但是,如果我碰巧在拖動另一個精靈時,pointerOver()函數總是返回false。當我拖動另一個精靈時,如何檢測指針何時位於精靈之上?
我想我會通過獲取指針的位置並將其與我的精靈的位置和邊界進行比較來解決它,但指針位置始終爲(-1,-1)。
下面是一些示例代碼來演示該問題:
var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, create: create, update: update, render: render });
var triangle;
var square;
var isOver;
var pointerX;
var pointerY;
function preload()
{
game.load.image('triangle', 'assets/triangle.png');
game.load.image('square', 'assets/square.png');
}
function create()
{
triangle = game.add.sprite(100, 100, "triangle");
triangle.inputEnabled = true;
triangle.input.enableDrag(false, true);
square = game.add.sprite(100, 200, "square");
square.inputEnabled = true;
}
function update()
{
isOver = square.input.pointerOver() ? "Yes" : "No";
}
function render()
{
game.debug.text("Mouse over square: " + isOver, 200, 100);
game.debug.text("Pointer: (" + game.input.pointer1.x + ", " + game.input.pointer1.y + ")", 200, 116);
}
我發現這個職位有關使用精靈的input.priorityID:Phaser JS how to stop event Propagation(firing) from textButton.events.onInputDown event to game.input.onDown event?
使用priorityID固定它當三角在頂部正方形和三角形沒有被拖動,但問題仍然存在時,它被拖動。
即使當我拖動另一個精靈時,如何檢測指針是否位於精靈之上?
謝謝。