ゲームプログラミングwiki(http://www.c3.club.kyutech.ac.jp/gamewi ... 4%C0%A4%B9)の『弾を撃つためにボタンを連打する』を参考にさせてもらって作ってみたのですが、まず弾の画像すらでないので困っています。
10個分の弾を構造体にしてfor文で10個を管理して撃ってるつもりなのですが、どこがおかしいでしょうか?
AcountというのはゲームパッドのAボタンを押している間増えるカウントに直したものです。
//弾の移動と連射用カウント
void Run(Player_t *Player, Tama_t *Tama)
{
//連打しないと撃てない仕組み
if(Acount == 1 && Osituduke == 0)
{
Bullet( Player ,Tama); //ここで弾を発生
Osituduke = 1;
}
Osituduke = Acount;
//弾の移動
for(int i = 0; i < 10; i++)
{
if(Tama->Flag[i] == 1)
{
Tama->X[i] = Tama->X[i] + 5;
}
}
//連射カウントを引いていく
if(TamaCount > 0)
{
TamaCount-=1;
}
}
//弾を発生させる
void Bullet(Player_t *Player,Tama_t *Tama )
{
if(TamaCount== 0)//連射カウントが0になったら発射
{
for(int i = 0; i < 10; i++)
{
if(Tama->Flag[i] == 0)
{
//弾の初期化
Tama->Flag[i] = 1;
Tama->X[i] = Player->X+128;
Tama->Y[i] = Player->Y+32;
TamaCount = 10;
Tama->Img[i]=BlueShotImg;
break;
}
}
}
}
// 描画する
void Player_Graph( Player_t Player ,Tama_t Tama ){
DrawGraph( Player.ViewX, Player.Y, Player.Img, TRUE );
for(int i = 0; i < 10; i++)
{
if(Tama.Flag[i] == 1)
{
DrawGraph( Tama.X[i], Tama.Y[i], Tama.Img[i], TRUE );
}
}
}
////////////Main関数内/////////////////////
Player_t Player;
Tama_t Tama;
Player_Initialize( &Player );// 初期化
Map_Initialize();
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){
Keyboard_Update();
Player_Input();//入力をカウントへ
Player_Calc(&Player ,&Tama); // 計算
Run(&Player ,&Tama);
Bullet(&Player ,&Tama);
Map_Scroll( &Player );
Map_Graph();
Player_Graph(Player, Tama); // 描画
}
Player_Finalize(Player ,Tama); // 終了処理
DxLib_End();
return 0;
}