2017-05-18 27 views
0

私は基本的なシューティングに取り組んでいます。私はエンジンとしてbabylon.jsを使用しています。私の目標は、ターゲットを画面上に0.75秒間表示させてから0.5秒間消えてから別のランダムな場所に再表示させることです。ターゲットの出現との間の0.5秒の遅延、すなわち、現在それは場所からの間に空きのある場所に点滅以外のすべてに成功Javascriptは画面の周りにターゲットを移動しますか?

function moveTarget(canvas, scene){ 
    setTimeout(function(){ 
    scene.meshes[10].visibility = 0; //how I access the target object 
    randX = genRandNum(minX, maxX); //This is a separate function that works 
    randY = genRandNum(minY, maxY); 
    scene.meshes[10].position = new BABYLON.Vector3(randX, randY, 
       scene.meshes[10].position.z); 
    scene.meshes[10].visibility = 1; 
    x ++; 
    if (x < amount){ 
     moveTarget(canvas, scene); 
    } 
    }, tarDuration * 1000) 

    } 

:そのため私は現在のコードは、これです。私は2番目のsetTimeoutが必要だと思っていますが、それを含める方法やどこに行くのかが完全にはわかりません。正しい方向へのどんなプッシュも非常に高く評価されます。

答えて

0

これを行う方法は、完全なサイクルタイム(0.75秒+ 0.5秒)のタイムアウトを設定し、その後0.5秒の遅延のタイムアウトを設定することです。

function moveTarget(canvas, scene){ 
    setTimeout(function(){ 
     setTimeout(function(){ 
      // Your other code 
      x ++; 
      if (x < amount){ 
       moveTarget(canvas, scene); 
      } 
     }, yourDelayHere) 
    }, tarDuration * 1000) 
} 

ここでyourDelayHereは0.5秒の遅延を与えます。簡略化した例hereを示すBabylon.jsプレイラウンドを作成しました。

関連する問題