2016-12-09 5 views
0

レンガブレーカークローンを作成しており、52個のブロックが作成された後にブロックの作成を停止する必要があります。一度に現れている現状は破壊され、より多くのものを作り出し、実際には60年代に入ります。if文を書き直して一度停止する方法.Countメソッドが連続して作成する代わりに数値に達しました

ゲーム1の更新()セクションの私のブロックコード:

コードの次のビットは、上記の直下に位置し、.Countから1を除去することになっている
if (blocks.Count < 52) 
     {    

      for (int j = 0; j < 12; j++) 
     { 
       blockXpos += (61); 
       blocks.Add(new Blocks(Content.Load<Texture2D>("Blocks\\DurasteelBlock"), blockXpos, blockYpos)); 


       if (j == 11) 
       { 

        for (int i = 0; i < 1; i++) 
        { 

         blockXpos = 3; 
         blocks.Add(new Blocks(Content.Load<Texture2D>("Blocks\\DurasteelBlock"), blockXpos, blockYpos)); 

         blockYpos += (51); 
         if (i == 1) 
         { 
          j = 0; 
         }   
        } 
       } 
      } 
     } 

for (int j = 0; j < blocks.Count; j++) 
      { 
       if (blocks[j].alive == false) 
       { 
        blocks.RemoveAt(j); 
        break; 
       } 
      } 
      for (int i = 0; i < blocks.Count; i++) 
      { 
       if (blocks[i].alive == false) 
       { 
        blocks.RemoveAt(i); 
        break; 
       } 
      } 

最初の行を基本的に「52時後に停止」と変更するにはどうすればではなくの代わりにカウントが52未満の場合に連続して作成する '

+0

整数を使用し、それを自分で数えます。 – Rabban

答えて

0

各ブロックの後に、blocks.Countをチェックして、> 52の場合はループから抜け出す必要があります。

0
//remove the if before the for loop 

for (int j = 0; j < 12; j++) 
{ 
    if (blocks.Count >= 52) 
    { 
     break; //exit the for loop 
    } 

    blockXpos += (61); 
    blocks.Add(new Blocks(Content.Load<Texture2D>("Blocks\\DurasteelBlock"), blockXpos, blockYpos)); 

    if (j == 11) 
    { 
     for (int i = 0; i < 1; i++) 
     { 
      blockXpos = 3; 
      blocks.Add(new Blocks(Content.Load<Texture2D>("Blocks\\DurasteelBlock"), blockXpos, blockYpos)); 
      blockYpos += (51); 
      if (i == 1) 
      { 
       j = 0; 
      }   
     } 
    } 
} 

break(MSDN)を参照してください。

0

私はそれをLoadContent Sectionに入れましたが、代わりに問題が解決されました。

関連する問題