フィールドの領域の問題+当たり判定について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
光翼型近接支援残酷超初心者

フィールドの領域の問題+当たり判定について

#1

投稿記事 by 光翼型近接支援残酷超初心者 » 15年前

どうも、こんばんは。

最近こんなめんどくさい名前にせにゃよかったと思っている光翼型近接支援残酷超初心者です。ドゥーム様に憧れてやった結果がコレだよ! って感じですね。

以上挨拶でした。



質問ですが、


近頃、龍神録の改造がうまくいってきてるので、自作のボードを作ってみたのですがそこで問題が出てきました。

と言っても実際は初期の方から気になっていた問題なんですが……。


FIELD_MAX_X、と
FIELD_MAX_Y

の値をどんなに変えても変更が適用されないのです。


龍神録では、

#define FIELD_MAX_X 384
#define FIELD_MAX_Y 448

となっていますが。


自分のSTGでは広くして

#define FIELD_MAX_X 544
#define FIELD_MAX_Y 448

としてるのですが、変更しても反映されず、龍神録のデフォルトの領域でしか動けませんでした。


どうすれば改善されるのでしょうか? 他に変更すべき点があるのでしょうか?

どうかお願いします。






それともう一つの質問なんですが、


//敵の当たり判定範囲
int enemy_range[ENEMY_RANGE_MAX]={16,30,16,50};
//自機ショットの当たり判定範囲
int cshot_range[CSHOT_RANGE_MAX]={6,};


という文で当たり判定を決めているのは分かるのですが、どのように決めているのでしょうか?


{16,30,16,50}の場合、領域の判定と同じで画像の左上の座標を16,30とし、そこからxに16の範囲、yに50の範囲、という考えでよいのでしょうか? でも龍神録等の当たり判定というのは円形だった気がしてるのですが、自分が言った考え方だと四角形になってるハズので疑問に思いました。

それと、int cshot_range[CSHOT_RANGE_MAX]={6,};の{6,}はどう定義しているモノなのでしょうか?


I can`t C.な自分ですが、どうかご教授お願いします。 画像

fatens

Re:フィールドの領域の問題+当たり判定について

#2

投稿記事 by fatens » 15年前

最初の質問については私の方では反映されます。
リビルドしてみてくださいとしか……

enemy_range[/url] や cshot_range[/url] はそれぞれ敵と自機ショットの半径です。
enemy_range[enemy.knd] といった記述があるように、
敵の種類によって当たり判定の円の半径を決定しています。

>int cshot_range[CSHOT_RANGE_MAX]={6,};の{6,}
初期化子の数が足りないときは残りは0で初期化されることになっています。
また、6, の , はあってもなくてもかまいません。

光翼型近接支援残酷超初心者

Re:フィールドの領域の問題+当たり判定について

#3

投稿記事 by 光翼型近接支援残酷超初心者 » 15年前

領域の方はビルトしてデバックなしでやったら反映されました。緑色の三角押してやってたのがいけなかったのでしょうか? というかこの二つの方法の違いはどこなんでしょう?

まあでも、大丈夫でした。解決しました。




なるほど半径でしたか。
……つまり一匹目の敵は半径16分の円が当たり判定で、二匹目は半径30分が当たり判定…………って事、ですか? いやなんか違う気がする……。


すみません。このクソ低能でカスで塵以下でむしろ「生まれてきてすみません」って遺書かいて死ね、な低脳を持つ自分にもう一度お教え頂けないでしょうか? ホントすみません。

MNS

Re:フィールドの領域の問題+当たり判定について

#4

投稿記事 by MNS » 15年前

龍神録のコードはあまり良くしりませんが、
敵の種類などはkndというint型の変数で定めているのでしょう。
ですから、
>つまり一匹目の敵は半径16分の円が当たり判定で、二匹目は半径30分が当たり判定
こういうことではなく、
→0が値の種類の敵の、当たり判定に用いる円の半径は16、1が値の種類の敵は30・・・
ということだと思います。

>このクソ低能でカスで塵以下でむしろ「生まれてきてすみません」って遺書かいて死ね、な低脳を持つ自分
もう少し、表現を和らげた方が良いでしょう。気分を害する人がいるかもしれません。

光翼型近接支援残酷超初心者

Re:フィールドの領域の問題+当たり判定について

#5

投稿記事 by 光翼型近接支援残酷超初心者 » 15年前

>>0が値の種類の敵の、当たり判定に用いる円の半径は16、1が値の種類の敵は30・・・

なるほど。今の所公開されてる龍神録の章では敵の種類を増やす事には触れてなかったので混乱してました。

ありがとうございます。


>>低脳表現

ちょっとしたネタを含めたつもりでしたが……、やはりそうですね、知らない人には随分と悪い印象を持たれるかもしれませんでしたね。




ところで、気になったんですけど、

オプションから発射される弾の当たり判定も「int cshot_range[CSHOT_RANGE_MAX]={6,};」で決めているのでしょうか?

fatens

Re:フィールドの領域の問題+当たり判定について

#6

投稿記事 by fatens » 15年前

>領域の方はビルトしてデバックなしでやったら反映されました。緑色の三角押してやってたのがいけなかったのでしょうか? というかこの二つの方法の違いはどこなんでしょう?

緑色の三角は「デバッグ開始」を意味します。
通常ソースを変更した状態でこれを押すと、ビルドを確認するダイアログが出て、
「はい」を選択すると、ビルドした後デバッグ開始をしますが、
「いいえ」の場合、ビルドせずにデバッグ開始をします。
「今後このダイアログを表示しない」をチェックして「いいえ」を選択していた場合、
何回緑色の三角を押してもビルドされないため、変更が反映されなかったのではないでしょうか。


>オプションから発射される弾の当たり判定も「int cshot_range[CSHOT_RANGE_MAX]={6,};」で決めているのでしょうか?

そうですね。
オプションからのショットは knd = 1 なので、cshot_range[1] = 0 となります。

光翼型近接支援残酷超初心者

Re:フィールドの領域の問題+当たり判定について

#7

投稿記事 by 光翼型近接支援残酷超初心者 » 15年前

いつも三角でやっていましたし、変更しても毎回「はい」「いいえ」のダイログは出てたので関係ないと思うんですけどね……。何でだったんでしょう。


>そうですね。
>オプションからのショットは knd = 1 なので、cshot_range[1] = 0 となります。

当たってましたか、よかったです。
じゃあ int cshot_range[CSHOT_RANGE_MAX]={6,}; の{6,}の部分に「,」があるのはオプションのために分かりやすくしてあった、……って事なんですね、多分。


ともかく解決です。御三方、ありがとうございました。

閉鎖

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