初めまして、電気さぼてんと言う者です、よろしくおねがいします。
今年の1月にプログラミングをやろうと思って始めた初心者です。
管理人さんのシューティングゲーム講座を見て、勉強させていただいています。
で、敵の弾が自機に向かってくるところを勉強させていただいた時点で、
「ホーミングミサイルとかほしいな・・・」
とか思って、色々やったのですが、どうにもうまくいきません。
何か上手く作る方法などございませんか?
何か、見本などがありますとうれしいです。
頼りっきりな質問で申し訳ありません。
でも、どうしてもつけてみたくて・・・。
シューティングゲームを勉強しているのですが…
Re:シューティングゲームを勉強しているのですが…
龍神録のミドリの弾のような単純なホーミングでいいんでしょうか?
それならピタゴラスの定理で自機と敵との距離を全て求め、一番近い敵にターゲットを定めます。
そして、その敵との角度をatan2関数を使って求め、そちらに発射します。
発射後は常に、弾と敵との角度をatan2で変更すれば、自動的に当たりますよね。
どうでしょうか?
それならピタゴラスの定理で自機と敵との距離を全て求め、一番近い敵にターゲットを定めます。
そして、その敵との角度をatan2関数を使って求め、そちらに発射します。
発射後は常に、弾と敵との角度をatan2で変更すれば、自動的に当たりますよね。
どうでしょうか?
Re:シューティングゲームを勉強しているのですが…
お早い返答ありがとうございます。
敵が撃ってくる弾にそのようなホーミングをつける場合も、同じように考えてよろしいのですか?
敵が撃ってくる弾にそのようなホーミングをつける場合も、同じように考えてよろしいのですか?
Re:シューティングゲームを勉強しているのですが…
>敵が撃ってくる弾にそのようなホーミングをつける場合も、同じように考えてよろしいのですか?
いいんじゃないかな?
あとはどのようなホーミング軌道をとるか(とらせたいか)によるでしょう。
管理人さんの説明されているホーミングの軌道のイメージは掴んでいるでしょうか?
その辺のイメージがずれていると堂々巡りになります^^;
サンプルをよく読んで、というか実際に自分なりに組んでテストしてみると良いでしょう。
自分のイメージした動きと組んでみた動き方とサンプルの動きが同じかどうか、
試してみれば一目瞭然。ですよね?
いいんじゃないかな?
あとはどのようなホーミング軌道をとるか(とらせたいか)によるでしょう。
管理人さんの説明されているホーミングの軌道のイメージは掴んでいるでしょうか?
その辺のイメージがずれていると堂々巡りになります^^;
サンプルをよく読んで、というか実際に自分なりに組んでテストしてみると良いでしょう。
自分のイメージした動きと組んでみた動き方とサンプルの動きが同じかどうか、
試してみれば一目瞭然。ですよね?
Re:シューティングゲームを勉強しているのですが…
自機が敵にうつホーミングは「絶対当たる」という仕様でいいですが、敵が自機にうつホーミングは「逃げられる」仕様じゃないとダメなので、同じではダメかと思いますが、まぁ考え方としては似ていると思います。
いつまでも追跡してたんじゃ、逃げ場がなくなりますから、何カウントまで追跡するとか、角度変更は徐々にしかしないとか、そういう仕様を実装しないとホーミングっぽくならないと思います。
特に常にもろ自分へと同じ角度に向いているとホーミングっぽさは低くなってしまうと思います。
自機狙い弾とホーミングは違いますけど、後者で間違いないですよね?
自機狙い弾なら、うつ前に敵と自機との座標からatan2を使って求めて直線発射すればいいだけです。
どっちにしてもatan2という関数を使いこなせば結構簡単に出来ると思います。
いつまでも追跡してたんじゃ、逃げ場がなくなりますから、何カウントまで追跡するとか、角度変更は徐々にしかしないとか、そういう仕様を実装しないとホーミングっぽくならないと思います。
特に常にもろ自分へと同じ角度に向いているとホーミングっぽさは低くなってしまうと思います。
自機狙い弾とホーミングは違いますけど、後者で間違いないですよね?
自機狙い弾なら、うつ前に敵と自機との座標からatan2を使って求めて直線発射すればいいだけです。
どっちにしてもatan2という関数を使いこなせば結構簡単に出来ると思います。