当たり判定のことです

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

当たり判定のことです

#1

投稿記事 by 胡椒 » 15年前

龍神録のプログラムのout.cppなんですが

int out_judge(double x1, double y1, double x2, double y2,
double range1, double range2, double spd1,double angle1){
int j;
double x=x1-x2;//敵と自機ショットとの距離
double y=y1-y2;
//敵の当たり判定と自機ショットの当たり判定の合計範囲
double r=range1+range2;
//中間を計算する必要があれば
if(spd1>r){
//1フレーム前にいた位置を格納する
double pre_x=x1+cos(angle1+PI)*spd1;
double pre_y=y1+sin(angle1+PI)*spd1;
double px,py;
for(j=0;j<spd1/r;j++){//進んだ分÷当たり判定分ループ
px=pre_x-x2;
py=pre_y-y2;
if(px*px+py*py<r*r)
return 1;
pre_x+=cos(angle1)*r;
pre_y+=sin(angle1)*r;
}
}
if(x*x+y*y<r*r)//当たり判定内なら
return 1;//当たり
return 0;
}

の部分に

for(j=0;j<spd1/r;j++){//進んだ分÷当たり判定分ループ
px=pre_x-x2;
py=pre_y-y2;
if(px*px+py*py<r*r)
return 1;
pre_x+=cos(angle1)*r;
pre_y+=sin(angle1)*r;
}

とありますが、ここのjは忌があるのでしょうか?
見たところfor文の中でjが使われていないと思うのですが・・・

kazuoni

Re:当たり判定のことです

#2

投稿記事 by kazuoni » 15年前

> jは忌があるのでしょうか?

意味ですかね?
ではforてはなく、whileで書き換えてみてください。
そうすればjの意味がわかるかと思います。
一度for文の用法の再確認をしてみた方がよいかもしれません。

胡椒

Re:当たり判定のことです

#3

投稿記事 by 胡椒 » 15年前

すみません・・
ものすごく初歩的なことで勘違いをしていました・・・

閉鎖

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