2016-10-23 6 views
2

私はp5.jsで初めての生徒向けに設計された非常にシンプルな "ヒップ・ア・モル"タイプのゲームを作成しようとしています。 現在、配列を作成し、その配列内で無作為に四角形を選択して茶色にします(現在は「mole」)。 正方形を選択した後、数秒間そこにとどまり、基本的なp5を使用して次のものにジャンプするようにするにはどうすればよいですか? 私はnoLoop()を実装して検索を停止することができましたが、一定の時間が経過すると再開します。一定時間、noLoop()を保持

は、ここで私がこれまで持っているコードです:

function setup() { 
    createCanvas(610,610) 
} 

function draw() { 
    var grid = [] 
    for (var x = 0; x < 6; x += 1){ 
     grid[x]=0; 
     for (var y = 0; y < 6; y += 1){ 
      rand=round(random(360)) 
      grid[x][y]=0 
      if (rand==0){ 
       grid[x]=1 
       grid[y]=1 
       noLoop() 
      } 
      if (grid[x]==0 || grid[y]==0){ 
       fill(76,153,0) 
       rect((x*100+10),(y*100+10),90,90) 
      } 
      if (grid[x]>0 && grid[y]>0){ 
       fill(102,51,0) 
       rect((x*100+10),(y*100+10),90,90) 
      } 
     } 
    } 
} 

答えて

0

代わりnoLoop()を使用しての、あなたは毎秒60のフレームでループし続けるが、その後の経過時間を追跡するためにmillis()機能を使用することができます。

var clickTime; 

function mousePressed(){ 
    clickTime = millis(); 
} 

function draw() { 
    background(0); 
    if(millis() < clickTime + 1000){ 
    ellipse(width/2, height/2, width/4, height/4); 
    } 
} 

編集:別のアプローチは、すべてのX何かをするためにframeCount変数と一緒に%演算子を使用することです。ここ

は1秒たび、ユーザーがクリックのためのサークルを示し例ですフレーム。この例では、60フレームごとにランダムな位置に円を描きます:

function draw() { 
    if (frameCount % 60 == 0) { 
    background(0); 
    ellipse(random(width), random(height), width/4, height/4); 
    } 
} 
+0

私はこれを自分のコードに組み込みます。ここで、 'rand == 0'の場合、コードは1-2秒間停止しますか? –

+0

@NavidMamoonこのように考えてみましょう。コードを停止したくないのです。あなたは60秒ごとにモルを変えたいだけです。また、 'frameCount'変数を使ってXフレームごとに何かをすることもできます。私の編集された答えを見てください。 –

+0

パーフェクト、フレーム数はまさに私が探していたものです、ありがとう! –

関連する問題