gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 03:54:59 25 4
gpt4 key购买 nike

我想在用户按下按键时显示一个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)从图形中创建一个局部变量(添加var/let)
2)使用graphics.destroy.bind(graphics)作为超时回调

关于javascript - Phaser - 显示图形对象 50 毫秒,并在同时按下一个或多个按键时销毁每个按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42841351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com