我正在使用 Phaser Framework 创建弹球游戏。
当按下球支架时(请检查随附的屏幕截图,以便您了解我的意思是球支架),根据按压速度,它应该使球围绕螺旋 channel 移动。所以现在尝试检测持有者的按下持续时间。
这是我的代码:
var ballButton;
ballButton = game.add.sprite(196, 100, 'ballHolder');
ballButton.inputEnabled = true;
ballButton.events.onInputDown.add(inputDownAction, this);
function inputDownAction(ballButton, pointer) {
/* returns 0 */
console.log( pointer.duration);
}
因此,pointer.duration
不起作用并返回0
。
但是 update() 函数内的 game.input.activePointer.duration
正在工作并返回持续时间。
if (game.input.activePointer.duration > 200 && game.input.activePointer.duration < 500){
console.log('first range '+game.input.activePointer.duration);
}else if(game.input.activePointer.duration > 500 && game.input.activePointer.duration < 700){
console.log('second range '+game.input.activePointer.duration);
}else if(game.input.activePointer.duration > 700){
console.log('third range '+game.input.activePointer.duration);
}
如何使其适用于特定项目/ Sprite ?请问有什么想法吗?
最佳答案
在 Phaser 3 中类似
function update(){
var duration = 0
if( this.input.activePointer.isDown ){
duration++;
}
}
关于javascript - 如何在 Phaser 中获取 Sprite 的 activePointer 按下持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47357205/