Imperial ┼ cross 久しぶりにバグつぶししてみたのはいいものの…
Imperial ┼ cross
総閲覧者数:
現在の閲覧者数:
ブログ内検索
やぁ(´・ω・`) 神聖な☆蛙☆の管理する変なブログですよ


スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | TB(-) | CM(-)

久しぶりにバグつぶししてみたのはいいものの…

暇が出来ているので、テトリスのバグつぶしをしてみました。
あまりに久しぶり過ぎて、自分が何を書いたのか全くわかりませんwwww
とりあえず、二次元配列のフィールドをデバッグ表示してみました。
まったく固定化がうまくいってないようなので、そこをみてみましたが、
何処をどうすればいいのか分からないお(´・ω・`)



int Tetris_Fall(){
   static int call_time = GetNowCount();
   static int call_set = GetNowCount();
   int a , b;
   static int mode = false;


   if(mode == false){
      if( GetNowCount() - call_time > Tetris.Speed){
         memcpy(Tetris.Fieldsub, Tetris.Field, sizeof(Tetris.Field));
         if(Tetris.Nextmino[0] == 0){
            for(a=Tetris.Mino_Y+1; a<Tetris.Mino_Y+4; a++){
               for(b=Tetris.Mino_X+1; b<Tetris.Mino_Y+4; b++){
                  memcpy(Tetris.Fieldsub, Tetris.Field, sizeof(Tetris.Field));
                  Tetris.Fieldsub[a][b]+=Tetris.I_Array[a-Tetris.Mino_Y-1][b-Tetris.Mino_X-1];
                  if(Tetris.Fieldsub[a][b]%10 == 2){
                     call_set = GetNowCount();
                     mode=true;
                     goto Tetris_Fall_End;
                  }
               }
            }
         }
         else{
            for(a=Tetris.Mino_Y+1; a<Tetris.Mino_Y+3; a++){
               for(b=Tetris.Mino_X+1; b<Tetris.Mino_Y+3; b++){
                  memcpy(Tetris.Fieldsub, Tetris.Field, sizeof(Tetris.Field));
                  Tetris.Fieldsub[a][b]+=Tetris.Tetra_Array[a-Tetris.Mino_Y-1][b-Tetris.Mino_X-1];
                  if(Tetris.Fieldsub[a][b]%10 == 2){
                     call_set = GetNowCount();
                     mode=true;
                     goto Tetris_Fall_End;
                  }
               }
            }            
         }
         Tetris.Mino_Y++;
      }
   }
   else{
      if(GetNowCount() - call_set > Tetris.Set_timesub){
         Tetris_Fix();                        //テトリミノ固定化
         mode=true;
         return 1;
      }
      memcpy(Tetris.Fieldsub, Tetris.Field, sizeof(Tetris.Field));
      if(Tetris.Nextmino[0] == 0){
         for(a=Tetris.Mino_Y+1; a<Tetris.Mino_Y+4; a++){
            for(b=Tetris.Mino_X+1; b<Tetris.Mino_Y+4; b++){
               memcpy(Tetris.Fieldsub, Tetris.Field, sizeof(Tetris.Field));
               Tetris.Fieldsub[a][b]+=Tetris.I_Array[a-Tetris.Mino_Y-1][b-Tetris.Mino_X-1];
               if(Tetris.Fieldsub[a][b]%10 == 2){
                  goto Tetris_Fall_End;
               }
               Tetris.Set_timesub -= 2;
               mode = false;
            }
         }
      }
      else{
         for(a=Tetris.Mino_Y+1; a<Tetris.Mino_Y+3; a++){
            for(b=Tetris.Mino_X+1; b<Tetris.Mino_Y+3; b++){
               memcpy(Tetris.Fieldsub, Tetris.Field, sizeof(Tetris.Field));
               Tetris.Fieldsub[a][b]+=Tetris.Tetra_Array[a-Tetris.Mino_Y-1][b-Tetris.Mino_X-1];
               if(Tetris.Fieldsub[a][b]%10 == 2){
                  goto Tetris_Fall_End;
               }
               Tetris.Set_timesub -= 2;
               mode = false;
            }
         }            
      }
   }
   Tetris_Fall_End:
   return 0;
}

void Tetris_Fix(){
   int a, b;

   if(Tetris.Nextmino[0] == 0){
      for(a=Tetris.Mino_Y; a<Tetris.Mino_Y+4; a++){
         for(b=Tetris.Mino_X; b<Tetris.Mino_Y+4; b++){
            if(Tetris.I_Array[a-Tetris.Mino_Y][b-Tetris.Mino_X]=1){
               Tetris.Field[a][b]=10*Tetris.Nextmino[0]+1;
            }
         }
      }
   }
   else{
      for(a=Tetris.Mino_Y; a<Tetris.Mino_Y+3; a++){
         for(b=Tetris.Mino_X; b<Tetris.Mino_Y+3; b++){
            if(Tetris.Tetra_Array[a-Tetris.Mino_Y][b-Tetris.Mino_X]=1){
               Tetris.Field[a][b]=10*Tetris.Nextmino[0]+1;
            }
         }
      }
   }
}
スポンサーサイト
[ 2011/07/19 17:38 ] ゲーム制作 | TB(0) | CM(0)
-->
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。