移相器 - 显示图形对象 50 毫秒,并在同时按下一个或多个键时销毁每次按键



我想在用户按下某个键时显示一个矩形50msdraw()功能按预期工作,用于单键按下。如果同时按下多个键,例如同时按下两个键,则其中一个图形对象不会被破坏。

function draw(x, y){
    graphics = game.add.graphics(x, y);
    graphics.clear()
    graphics.lineStyle(2, 0x0000FF, 1);
    graphics.beginFill(0x0000FF, 0.5);
    graphics.drawRect(0,0,18,18);
    graphics.endFill(0x0000FF, 0.5);
    // destroy the graphics after 50 ms
    setTimeout(function (){graphics.destroy()}, 50);

}

看起来您的第二次绘制调用(在不到 50 毫秒的时间内完成(在图形中分配不同的对象,因此当触发来自第一次绘制调用的超时回调时,它会对在第二次调用中创建的图形进行操作。

为避免这种情况,您可以:
1( 用图形制作一个局部变量(添加变量/让(
2( 使用 graphics.destroy.bind(graphics( 作为超时回调

相关内容

  • 没有找到相关文章

最新更新