シューティングゲームの館の18章の質問
Posted: 2007年11月15日(木) 15:48
はじめまして
シューティングゲームの館を見ながらシューテングゲーム制作に挑戦しています
18章の コードなのですが少し改造して
1回のEnemyPatternで2回ショットを撃たせようと思っているのですが
るにはどうすればいいでしょうか?
void EnemyPattern(int i){
int j;
if(enemy.counter<50)
enemy.y+=4.0f;
if(enemy.counter==75){
for(j=0;j<ENEMY_TOTAL_NUM;j++)
if(EnemyShot[j].flag==0)
break;
EnemyShot[j].mem_ex=enemy.x;
EnemyShot[j].mem_ey=enemy.y;
EnemyShot[j].mem_px=Player.x;
EnemyShot[j].mem_py=Player.y;
EnemyShot[j].counter=0;
EnemyShot[j].flag=1;
EnemyShot[j].pattern=1;
EnemyShot[j].img=0;
}
if(enemy.counter>76 && enemy.counter<95)
enemy.x+=2.0f;
if(enemy.counter==100){
for(j=0;j<ENEMY_TOTAL_NUM;j++)
if(EnemyShot[j].flag==0)
break;
EnemyShot[j].mem_ex=enemy.x;
EnemyShot[j].mem_ey=enemy[i].y;
EnemyShot[j].mem_px=Player.x;
EnemyShot[j].mem_py=Player.y;
EnemyShot[j].counter=0;
EnemyShot[j].flag=1;
EnemyShot[j].pattern=1;
EnemyShot[j].img=0;
}
if(enemy[i].counter>100){
enemy[i].y-=2.0f;
}
DrawFormatString(0,0,color_White,"EnemyShot[%d]flag",EnemyShot[i].flag);
}
counterが100になる前に弾に当たってフラグを消すと
ちゃんとcounter100は実行されます
シューティングゲームの館を見ながらシューテングゲーム制作に挑戦しています
18章の コードなのですが少し改造して
1回のEnemyPatternで2回ショットを撃たせようと思っているのですが
るにはどうすればいいでしょうか?
void EnemyPattern(int i){
int j;
if(enemy.counter<50)
enemy.y+=4.0f;
if(enemy.counter==75){
for(j=0;j<ENEMY_TOTAL_NUM;j++)
if(EnemyShot[j].flag==0)
break;
EnemyShot[j].mem_ex=enemy.x;
EnemyShot[j].mem_ey=enemy.y;
EnemyShot[j].mem_px=Player.x;
EnemyShot[j].mem_py=Player.y;
EnemyShot[j].counter=0;
EnemyShot[j].flag=1;
EnemyShot[j].pattern=1;
EnemyShot[j].img=0;
}
if(enemy.counter>76 && enemy.counter<95)
enemy.x+=2.0f;
if(enemy.counter==100){
for(j=0;j<ENEMY_TOTAL_NUM;j++)
if(EnemyShot[j].flag==0)
break;
EnemyShot[j].mem_ex=enemy.x;
EnemyShot[j].mem_ey=enemy[i].y;
EnemyShot[j].mem_px=Player.x;
EnemyShot[j].mem_py=Player.y;
EnemyShot[j].counter=0;
EnemyShot[j].flag=1;
EnemyShot[j].pattern=1;
EnemyShot[j].img=0;
}
if(enemy[i].counter>100){
enemy[i].y-=2.0f;
}
DrawFormatString(0,0,color_White,"EnemyShot[%d]flag",EnemyShot[i].flag);
}
counterが100になる前に弾に当たってフラグを消すと
ちゃんとcounter100は実行されます