javascript - 如何在 Phaser 中获取 Sprite 的 activePointer 按下持续时间

标签 javascript canvas touch phaser-framework

我正在使用 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 ?请问有什么想法吗?

enter image description here

最佳答案

在 Phaser 3 中类似

function update(){
 var duration = 0
 if( this.input.activePointer.isDown ){
  duration++;
 }
}

关于javascript - 如何在 Phaser 中获取 Sprite 的 activePointer 按下持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47357205/

相关文章:

javascript - Ajax 对 console.log 输出的影响

android - 如何检测 libgdx 中的 Actor 何时被触摸?

java - 如何在Android中获取 "onTouchEnd"事件?

javascript - agendaWeek 和 agendaDay 上的 FullCalendar 冲突

javascript - 安卓猜谜游戏?当用户正确时如何更改随机数并在用户什么都不输入时解决崩溃修复?

javascript - 如何在右侧对齐 Kendo Tab Strip 选项卡?

Java Canvas 大小问题

javascript - 如何使用 Canvas 居中对齐线条图?

jquery - 具有可拖动层的clearCanvas()

iphone - 如何在 iPhone 中追踪手指的长按操作?