2017-03-16 5 views
0

ユーザーがキーを押したときに矩形を50msに表示します。 draw()機能はシングルキーを押すと期待通りに機能します。複数のキーが同時に押されると、同時に2つのキーが押された場合、グラフィックスオブジェクトの1つが破棄されません。Phaser - 50msのグラフィックオブジェクトを表示し、1回または複数回のキーが同時に押されたときに、各キーのプレスを破棄します。

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); 


} 

答えて

2

(50ミリ秒より短い時間で行われる)あなたの第二描画呼び出しは、最初の描画呼び出しからタイムアウトコールバックが発射されたとき、それは2回目の呼び出しで作成されたグラフィックスで動作するので、グラフィックの異なるオブジェクトを割り当てるように見えます。
1)タイムアウトコールバック

としてgraphics.destroy.bind(グラフィックス)を使用)
2(聞かせては/ varを追加)、グラフィックスのうち、ローカル変数を作る:あなたがすることができ、それを避けるために

関連する問題