ゲームのアルゴリズムを教えて管sai (199レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
96
(3): 2008/03/12(水)21:02 ID:K0/YrLVn(1) AAS
今、C言語でシューティングゲーム作ってるんですが、
連続した弾の出し方が分かりません。教えてください。
専門学校の先生には、配列を使えと言われたのですが、
よく分かりません。

今、作成している途中のソースコードを書きます。

void Shot(void)
{
  for(i=0;i<100;i++)
  {
    if(Bullet[i].flag == 0 && Bullet[i].type == 0)
    {
      Bullet[i].flag = 1 ;
      Bullet[i].x = (Jiki.x+Jiki.x+Jiki.width) / 2 ;
      Bullet[i].y = Jiki.y ;
    }
  }
}

void KeyCheck(void)
{
  if(GetAsyncKeyState(VK_SPACE)<0){ Shot(); }
}
98
(1): 96 2008/03/13(木)16:41 ID:xt6KljbL(1) AAS
>>97 さん
ある程度、間隔を置いて、発射させたいんですぅ。
毎回、100発の弾が重なるのは、耐え難い事実なんです。
101: 2008/03/14(金)17:31 ID:46wpxx7U(1) AAS
>>96
if文の中の最後にbreak;入れると幸せになれるぞ
109: 2008/05/30(金)14:21 ID:Vu7kcDak(1/3) AAS
>>96
100個程度ならいいですけど配列でもいいかもしれないけど
双方向リストとかを使うようにしたほうがいいかも。c言語だし。
まあこの辺は後ほど。
でも配列を使えとかいう講師に双方向リストを実装して提出したら
うらまれそうw

unsigned int KeyShotFrmCnt = 0; //ショットキーのウェイト用カウンター
↑これはソースの頭のほうに書いてね。

void KeyCheck(void)
{
??if (KeyShotFrmCnt == 0)
??{
???if(GetAsyncKeyState(VK_SPACE)<0)
???{
????Shot();
????(KeyShotFrmCnt = 10;
???}
??} else {
???--KeyShotFrmCnt;
??}
}
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.018s