スポンサーサイト



この広告は30日以上更新がないブログに表示されます。

しゅーてぃんぐ(当たり判定追加・ボス)

  for(i = 0; i < GYORAI_MAX; i++ )
   {
    //「自機の弾 対 BOSS」判定
    if( sGyorai[i].iUsed == TRUE)
    {
     //左上の格納庫
     if( sGyorai[i].sPos.fX < sBoss.sPos.fX+BOSS_WIDTH2 && 
      sGyorai[i].sPos.fX+GYORAI_WIDTH > sBoss.sPos.fX &&
      sGyorai[i].sPos.fY < sBoss.sPos.fY+BOSS_HEIGHT2 &&
      sGyorai[i].sPos.fY+GYORAI_HEIGHT > sBoss.sPos.fY)
     {
      //弾を消す
      sGyorai[i].iUsed = FALSE;
     }
    }
   }
 for(i = 0; i < MISSILE_MAX; i++ )
   {
    //「自機の弾 対 BOSS」判定
    if( sMissile[i].iUsed == TRUE)
    {
     //左上の格納庫
     if( sMissile[i].sPos.fX < sBoss.sPos.fX+BOSS_WIDTH2 && 
      sMissile[i].sPos.fX+MISSILE_WIDTH > sBoss.sPos.fX &&
      sMissile[i].sPos.fY < sBoss.sPos.fY+BOSS_HEIGHT2 &&
      sMissile[i].sPos.fY+MISSILE_HEIGHT > sBoss.sPos.fY)
     {
      //弾を消す
      sMissile[i].iUsed = FALSE;
     }
    }
 }
 for(i = 0; i < SHIDEN_MAX; i++ )
   {
    //「自機の弾 対 BOSS」判定
    if( sShiden[i].iUsed == TRUE)
    {
     //左上の格納庫
     if( sShiden[i].sPos.fX < sBoss.sPos.fX+BOSS_WIDTH2 && 
      sShiden[i].sPos.fX+SHIDEN_WIDTH > sBoss.sPos.fX &&
      sShiden[i].sPos.fY < sBoss.sPos.fY+BOSS_HEIGHT2 &&
      sShiden[i].sPos.fY+SHIDEN_HEIGHT > sBoss.sPos.fY)
     {
      //弾を消す
      sShiden[i].iUsed = FALSE;
     }

しゅーてぃんぐ(当たり判定追加・雑魚)

 for(i = 0; i < GYORAI_MAX; i++ )
     {
      if( sGyorai[i].iUsed == TRUE)
      {
       //敵は既に爆発しているか
       if(sEnemy[h][j].iBlast == FALSE)
       {
        //「自機の弾 対 敵潜水艦」当たり判定
        if( sGyorai[i].sPos.fX < sEnemy[h][j].sPos.fX+ENEMY_WIDTH && 
         sGyorai[i].sPos.fX+GYORAI_WIDTH > sEnemy[h][j].sPos.fX &&
         sGyorai[i].sPos.fY < sEnemy[h][j].sPos.fY+ENEMY_HEIGHT &&
         sGyorai[i].sPos.fY+GYORAI_HEIGHT > sEnemy[h][j].sPos.fY &&
         h == 0)
        {
         //爆発の初期化
         sEnemy[h][j].iBlast = TRUE;
         sEnemy[h][j].iBstPtn = 0;

         //弾を消す
         sGyorai[i].iUsed = FALSE;

         //スコア加算
         score++;
        

         //アイテムドロップ判定
         for(i = 0; i < ITEM_MAX; i++)
         {
          if(sItem[i].iUsed == FALSE)
          {
           if(rand()%2 == 0)
           {
            sItem[i].sPos.fX = sEnemy[h][j].sPos.fX;
            sItem[i].sPos.fY = sEnemy[h][j].sPos.fY;
            sItem[i].iUsed = TRUE;
            sItem[i].Oneup = TRUE;
            break;
           }
           else
           {
            sItem[i].sPos.fX = sEnemy[h][j].sPos.fX;
            sItem[i].sPos.fY = sEnemy[h][j].sPos.fY;
            sItem[i].iUsed = TRUE;
            sItem[i].Power = TRUE;
            break;
           }
          }
         }
        }
        //「自機の弾 対 敵駆逐艦」当たり判定
        if( sGyorai[i].sPos.fX < sEnemy[h][j].sPos.fX+ENEMY2_WIDTH &&
         sGyorai[i].sPos.fX+GYORAI_WIDTH > sEnemy[h][j].sPos.fX &&
         sGyorai[i].sPos.fY < sEnemy[h][j].sPos.fY+ENEMY2_HEIGHT &&
         sGyorai[i].sPos.fY+GYORAI_HEIGHT > sEnemy[h][j].sPos.fY &&
         h == 1)
        {
         //弾を消す
         sGyorai[i].iUsed = FALSE;

         //ライフ減少&アニメーション
         sEnemy[h][j].eLife--;

         //ライフ1以上ならアニメーション
         if(sEnemy[h][j].eLife > 0)
         {
          sEnemy[h][j].eLifeAnim = 1;
          sEnemy[h][j].iHit = TRUE;
         }
         //ライフが0になったら
         if(sEnemy[h][j].eLife == 0)
         {
          //爆発の初期化
          sEnemy[h][j].iBlast = TRUE;
          sEnemy[h][j].iBstPtn = 0;

          //弾を消す
          sGyorai[i].iUsed = FALSE;

          //スコア加算
          score+=5;
         }
        }
       }
      }
     }
 for(i = 0; i < MISSILE_MAX; i++ )
     {
      if( sMissile[i].iUsed == TRUE)
      {
       //敵は既に爆発しているか
       if(sEnemy[h][j].iBlast == FALSE)
       {
        //「自機の弾 対 敵潜水艦」当たり判定
        if( sMissile[i].sPos.fX < sEnemy[h][j].sPos.fX+ENEMY_WIDTH && 
         sMissile[i].sPos.fX+MISSILE_WIDTH > sEnemy[h][j].sPos.fX &&
         sMissile[i].sPos.fY < sEnemy[h][j].sPos.fY+ENEMY_HEIGHT &&
         sMissile[i].sPos.fY+MISSILE_HEIGHT > sEnemy[h][j].sPos.fY &&
         h == 0)
        {
         //爆発の初期化
         sEnemy[h][j].iBlast = TRUE;
         sEnemy[h][j].iBstPtn = 0;

         //弾を消す
         sMissile[i].iUsed = FALSE;

         //スコア加算
         score++;

         //アイテムドロップ判定
         for(i = 0; i < ITEM_MAX; i++)
         {
          if(sItem[i].iUsed == FALSE)
          {
           if(rand()%2 == 0)
           {
            sItem[i].sPos.fX = sEnemy[h][j].sPos.fX;
            sItem[i].sPos.fY = sEnemy[h][j].sPos.fY;
            sItem[i].iUsed = TRUE;
            sItem[i].Oneup = TRUE;
            break;
           }
           else
           {
            sItem[i].sPos.fX = sEnemy[h][j].sPos.fX;
            sItem[i].sPos.fY = sEnemy[h][j].sPos.fY;
            sItem[i].iUsed = TRUE;
            sItem[i].Power = TRUE;
            break;
           }
          }
         }
        }
        //「自機の弾 対 敵駆逐艦」当たり判定
        if( sMissile[i].sPos.fX < sEnemy[h][j].sPos.fX+ENEMY2_WIDTH &&
         sMissile[i].sPos.fX+MISSILE_WIDTH > sEnemy[h][j].sPos.fX &&
         sMissile[i].sPos.fY < sEnemy[h][j].sPos.fY+ENEMY2_HEIGHT &&
         sMissile[i].sPos.fY+MISSILE_HEIGHT > sEnemy[h][j].sPos.fY &&
         h == 1)
        {
         //弾を消す
         sMissile[i].iUsed = FALSE;

         //ライフ減少&アニメーション
         sEnemy[h][j].eLife--;

         //ライフ1以上ならアニメーション
         if(sEnemy[h][j].eLife > 0)
         {
          sEnemy[h][j].eLifeAnim = 1;
          sEnemy[h][j].iHit = TRUE;
         }
         //ライフが0になったら
         if(sEnemy[h][j].eLife == 0)
         {
          //爆発の初期化
          sEnemy[h][j].iBlast = TRUE;
          sEnemy[h][j].iBstPtn = 0;

          //弾を消す
          sMissile[i].iUsed = FALSE;

          //スコア加算
          score+=5;
         }
        }
       }
      }
     }
 for(i = 0; i < SHIDEN_MAX; i++ )
     {
      if( sShiden[i].iUsed == TRUE)
      {
       //敵は既に爆発しているか
       if(sEnemy[h][j].iBlast == FALSE)
       {
        //「自機の弾 対 敵潜水艦」当たり判定
        if( sShiden[i].sPos.fX < sEnemy[h][j].sPos.fX+ENEMY_WIDTH && 
         sShiden[i].sPos.fX+SHIDEN_WIDTH > sEnemy[h][j].sPos.fX &&
         sShiden[i].sPos.fY < sEnemy[h][j].sPos.fY+ENEMY_HEIGHT &&
         sShiden[i].sPos.fY+SHIDEN_HEIGHT > sEnemy[h][j].sPos.fY &&
         h == 0)
        {
         //爆発の初期化
         sEnemy[h][j].iBlast = TRUE;
         sEnemy[h][j].iBstPtn = 0;

         //弾を消す
         sShiden[i].iUsed = FALSE;

         //スコア加算
         score++;
        

         //アイテムドロップ判定
         for(i = 0; i < ITEM_MAX; i++)
         {
          if(sItem[i].iUsed == FALSE)
          {
           if(rand()%2 == 0)
           {
            sItem[i].sPos.fX = sEnemy[h][j].sPos.fX;
            sItem[i].sPos.fY = sEnemy[h][j].sPos.fY;
            sItem[i].iUsed = TRUE;
            sItem[i].Oneup = TRUE;
            break;
           }
           else
           {
            sItem[i].sPos.fX = sEnemy[h][j].sPos.fX;
            sItem[i].sPos.fY = sEnemy[h][j].sPos.fY;
            sItem[i].iUsed = TRUE;
            sItem[i].Power = TRUE;
            break;
           }
          }
         }
        }
        //「自機の弾 対 敵駆逐艦」当たり判定
        if( sShiden[i].sPos.fX < sEnemy[h][j].sPos.fX+ENEMY2_WIDTH &&
         sShiden[i].sPos.fX+SHIDEN_WIDTH > sEnemy[h][j].sPos.fX &&
         sShiden[i].sPos.fY < sEnemy[h][j].sPos.fY+ENEMY2_HEIGHT &&
         sShiden[i].sPos.fY+SHIDEN_HEIGHT > sEnemy[h][j].sPos.fY &&
         h == 1)
        {
         //弾を消す
         sShiden[i].iUsed = FALSE;

         //ライフ減少&アニメーション
         sEnemy[h][j].eLife--;

         //ライフ1以上ならアニメーション
         if(sEnemy[h][j].eLife > 0)
         {
          sEnemy[h][j].eLifeAnim = 1;
          sEnemy[h][j].iHit = TRUE;
         }
         //ライフが0になったら
         if(sEnemy[h][j].eLife == 0)
         {
          //爆発の初期化
          sEnemy[h][j].iBlast = TRUE;
          sEnemy[h][j].iBstPtn = 0;

          //弾を消す
          sShiden[i].iUsed = FALSE;

          //スコア加算
          score+=5;
         }
        }
       }
      }
     }

Date04

main.c

#include <stdio.h> /* size of array */
#define ARRAY_SIZE 7 int main(void)
{
    int a[ARRAY_SIZE] = {1,2,3,4,5,6,7}; /* sorted array */
    int left = 0; /* start key of index */
    int right = ARRAY_SIZE; /* end key of index */
    int mid; /* middle key of index */
    int value; /* search value */     puts("Find value?");
    scanf("%d", &value);     while(left <= right) {
        mid = (left + right) / 2; /* calc of middle key */
        if (a[mid] == value) {
            puts("Found!\n");
            return 0;
        } else if (a[mid] < value) {
            left = mid + 1; /* adjustment of left(start) key */
        } else {
            right = mid - 1; /* adjustment of right(end) key */
        }
    }
    puts("Not Found.\n");
    return 0;
}
←prev next→