減速弾

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
名無しa

減速弾

#1

投稿記事 by 名無しa » 16年前

3方向ショット5発(15°)(減速)
void shot_bullet_H000(int n){
int t=shot[n].cnt;
int k;
if(t>=0 && t<100 && t%20==0){
double angle=shotatan2(n);
for(int i=0;i<3;i++){
if(shot[n].flag!=2 && (k=shot_search(n))!=-1){
shot[n].bullet[k].knd =enemy[shot[n].num].blknd2;
shot[n].bullet[k].angle =angle+PI/12*i-PI/12;
shot[n].bullet[k].flag =1;
shot[n].bullet[k].x =enemy[shot[n].num].x;
shot[n].bullet[k].y =enemy[shot[n].num].y;
shot[n].bullet[k].col =enemy[shot[n].num].col;
shot[n].bullet[k].cnt =0;
shot[n].bullet[k].spd =2;
}
se_flag[0]=1;
}
for(int i=0;i<SHOT_BULLET_MAX;i++){
if(shot[n].bullet.flag>0){
int cnt=shot[n].bullet.cnt;
if(30<cnt && cnt<80){
shot[n].bullet.spd-=1.2/50.0;
}
}
}
}
}



という弾幕を作ってみたのですが、どうもうまくいきません。
ミシャグジさま弾幕(16章)を参考にしたり、龍神録プログラミングの支館(減速ショット・減速しすぎるショット)を参考にしたりしたのですが、減速せずにスピードが2のまま弾が進みます。
分かりにくいのかと思い、「弾速を2、減速を4」などでやってみても、やはりうまくいきませんでした。
どうすればよいのでしょうか、お願いします。

array

Re:減速弾

#2

投稿記事 by array » 16年前

どの様な動きをイメージされているのか分からないので違う形になってしまうかもしれませんが
ちょっと書き換えてみました。(テストしてないので変わらないかもしれません^^;
void shot_bullet_H000( int n )
{ 
  int t = shot[n].cnt; 
  int k;

  if( t >= 0 && t < 100 && t%20 == 0 )
  { 
    double angle = shotatan2(n);

    for( int i = 0; i < 3; i++ )
    {
      if( shot[n].flag != 2 && ( k = shot_search(n) ) != -1 )
      { 
        shot[n].bullet[k].knd   = enemy[shot[n].num].blknd2; 
        shot[n].bullet[k].angle = angle+PI/12*i-PI/12; 
        shot[n].bullet[k].flag  = 1; 
        shot[n].bullet[k].x     = enemy[shot[n].num].x; 
        shot[n].bullet[k].y     = enemy[shot[n].num].y; 
        shot[n].bullet[k].col   = enemy[shot[n].num].col; 
        shot[n].bullet[k].cnt   = 0; 
        shot[n].bullet[k].spd   = 2; 
      } 
      se_flag[0] = 1; 
    } 
  }

  for( int i = 0; i < SHOT_BULLET_MAX; i++ )
  { 
    if( shot[n].bullet.flag > 0 )
    {
      int cnt = shot[n].bullet.cnt;

      if( cnt > 30 && cnt < 80 )
      { 
        shot[n].bullet.spd -= 1.2/50;
      } 
    }
  }
}

名無しa

Re:減速弾

#3

投稿記事 by 名無しa » 16年前

ちゃんと減速されていました
ありがとうございました!

ひとつ「}」が足りなくて「if」が全体にかかっていたんですね^^;

全く気付きませんでした

通りで自分のは最後の「}」も1つ多いわけですねorz

本当に助かりました
感謝です

array

Re:減速弾

#4

投稿記事 by array » 16年前

念のために、「 } 」の数は合ってましたが、おっしゃっている通りifがほぼ全体にかかっていました。
「 } 」の位置をずらしただけです

閉鎖

“C言語何でも質問掲示板” へ戻る