なんかうまく動かない。
弾幕関数も弾幕登録処理もコピペなんだけど、
なぜか挙動がおかしい。
001:本来10フレームに1度発射されるはずの自機狙い弾が、
毎フレーム発射される
002:本来角度が固定されるはずが、
常に自機狙い
004:本来円形弾が発射されるはずが、
半円形に発射される上に、2射目以降は自機狙いだけになる
などなど……
どういうことでしょうか
龍神録プログラミングの館 第13章で
Re: 龍神録プログラミングの館 第13章で
そのコピペしたソースを載せないで、原因が分かると思ってるんでしょうか。
エスパーな回答を期待してるのか?
そうでないなら怪しいと思うところでもいいから、載せましょうね
(プロジェクト一式固めてアップロードでもいい。その方が全体を見渡せて、見つけやすいかもしれない)
エスパーな回答を期待してるのか?
そうでないなら怪しいと思うところでもいいから、載せましょうね
(プロジェクト一式固めてアップロードでもいい。その方が全体を見渡せて、見つけやすいかもしれない)
オフトピック
プログラムは、期待した通りには動かない。
書いた通りに動くんだ。
だからソースも載せないでおかしいと言ってるだけじゃ何も進展しないよ?
書いた通りに動くんだ。
だからソースも載せないでおかしいと言ってるだけじゃ何も進展しないよ?
written by へにっくす
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 龍神録プログラミングの館 第13章で
龍神録とSTGの仕組みを理解するために勉強されていると思いますので、何がわからないという質問でしょうか?
コピペしてうまく動いたらOK!ってものでもないですよね。
1.弾の処理の仕組みがわからない。
2.デバッグの方法がわからない。
3.龍神録全体の仕組みがよく分かっていない。
そもそも、1章1章を順番に理解されていれば、問題から何が悪いか想像できるはずなのです。
コピペしてうまく動いたらOK!ってものでもないですよね。
1.弾の処理の仕組みがわからない。
2.デバッグの方法がわからない。
3.龍神録全体の仕組みがよく分かっていない。
そもそも、1章1章を順番に理解されていれば、問題から何が悪いか想像できるはずなのです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 龍神録プログラミングの館 第13章で
コピペしたというソースコードがないと正確な原因はわかりませんが考えられる可能性として
001:if文で10フレームに一度を意味する条件t%10==0が書かれていない可能性(もしくは条件の行が全くない)
002:角度を記憶するのは最初だけ。if(t==0)が抜けている可能性
004:一周する角度はPIではなくPI2。「2射目以降は自機狙いだけ」については全くわかりません。
本当に正確に写したのか疑問です。
あと、理解しないと自分の思う通りには書けません。
001:if文で10フレームに一度を意味する条件t%10==0が書かれていない可能性(もしくは条件の行が全くない)
002:角度を記憶するのは最初だけ。if(t==0)が抜けている可能性
004:一周する角度はPIではなくPI2。「2射目以降は自機狙いだけ」については全くわかりません。
本当に正確に写したのか疑問です。
あと、理解しないと自分の思う通りには書けません。
Re: 龍神録プログラミングの館 第13章で
自己解決しました。
ただの単純ミスで、見落としいていただけでした・・・
つまらぬことで質問してすみません。
いろいろいたらないところがありすみませんでした。
ご指摘ありがとうございます。
次回の質問からは気をつけます。
void shot_calc(int n){
/*中略*/
shot[n].bullet[i].x+=cos(shot[n].bullet[i].ang)*shot[n].bullet[i].spd;
shot[n].bullet[i].y+=sin(shot[n].bullet[i].ang)*shot[n].bullet[i].spd;
shot[n].bullet[i].cnt++;//←この部分の++を忘れていた
if(shot[n].bullet[i].x<-50||shot[n].bullet[i].x>FIELD_MAX_X+50||
shot[n].bullet[i].y<-50||shot[n].bullet[i].y>FIELD_MAX_Y+50){
/*後略*/
つまらぬことで質問してすみません。
いろいろいたらないところがありすみませんでした。
ご指摘ありがとうございます。
次回の質問からは気をつけます。