Chara.cppの追加ソースvoid InitMissile(void); void MoveMissile(void); //ミサイルの移動処理 void GoMissile(int x,int y); //ミサイルの発射処理 #define MISSILE_MAX 3 //一度に出せるミサイルの数 #define MISSILE_LIMIT 20 //ミサイルの消えるy座標 #define MCOUNT 5 //一発打つ毎の待ち時間。
Missile.cppのソースMoveChara()の最後に if((key % 8) >=4) GoMissile(CharaX,CharaY); //スペースキーが押されていれば、ミサイル発射処理へ。
#include "Def.h" struct MISSILE //ミサイルの情報を構造化する { int mx; //x座標 int my; //y座標 int mGo; //発射中かどうか }; static MISSILE Missile[MISSILE_MAX]; static mCount = MCOUNT; //一発打つ毎の待ち時間 void InitMissile() //ミサイルの初期化 { for(int i=0;i < MISSILE_MAX;i++) { Missile[i].mx=0; Missile[i].my=0; Missile[i].mGo=0; } } void MoveMissile() //ミサイルの移動 { for(int i=0;i < MISSILE_MAX;i++) { if(Missile[i].mGo == 1) //発射されていれば移動する。 { Missile[i].my -= 10; DrawImg(64,0,32,32,Missile[i].mx,Missile[i].my); if(Missile[i].my < MISSILE_LIMIT){ Missile[i].mGo = 0;} } } if(mCount < MCOUNT)mCount++; //前の発射からのカウントをここで進めておく。 } void GoMissile(int x,int y) //発射処理 { for(int i=0;i < MISSILE_MAX;i++) //空いているミサイルを探す。 { if(Missile[i].mGo == 0) { if(mCount == MCOUNT) { Missile[i].mGo = 1; Missile[i].mx = x; Missile[i].my = y; mCount = 1; break; } } } }