我想在用户按下某个键时显示一个矩形50ms
。 draw()
功能按预期工作,用于单键按下。如果同时按下多个键,例如同时按下两个键,则其中一个图形对象不会被破坏。
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( 作为超时回调