ページ 11

追尾弾の処理しょっぱなからできん

Posted: 2011年8月24日(水) 17:16
by ホイール
はじめまして まことに勝手ながら事情により手短に行きます

実は敵が主人公を追いかけるといったような処理をしたくて
ホーミング弾でしたっけ?追尾弾のことです あれの処理を応用すれば
できるかなぁ~と思っているのですがコードの意味が全く分かりません
「あぁ、sinとcosを使って角度もとめてんのか」ぐらいしか分かりません

どなたかどのような風に処理がなされてくれるのか教えてください お願いします

それと追尾弾はDXライブラリのサイトとこちらのサイトの2つのサンプルプログラミングを見たのですが
ぱっと見、DXライブラリのサイトさんのほうが簡単そうに見えたのですが
実際、どちらが簡単もしくは効率的なのでしょうか?(ここの掲示板では言いにくいとは思いますが)
人様のサイトなのに変なことぬかして申し訳ないです

Re: 追尾弾の処理しょっぱなからできん

Posted: 2011年8月24日(水) 17:50
by COFE
どういう使い方をするのかわかりませんがとりあえず基本的なところを……

例えば自機に向かう追尾弾を作りたければ、弾の角度を敵から見た時機の方へ設定すればいいわけですよね
そういう時はatan2関数を使います、これは敵の座標と時機の座標を設定するとその間の角度を教えてくれる関数です
龍神録の館で使われてる奴はコレです(てかコレ以外にそんな関数ないか)

コード:

弾[i].angle=atan2(自機のx座標-敵のx座標,自機のy座標-敵のy座標);
こう書けば敵から出される弾が自機に向かって飛んできます
処理の流れって言えばこんなものでしょうか?


それと……

>ホーミング弾でしたっけ?追尾弾のことです あれの処理を応用すれば
>できるかなぁ~と思っているのですがコードの意味が全く分かりません
>「あぁ、sinとcosを使って角度もとめてんのか」ぐらいしか分かりません

sin,cosの基礎はできてますか?
私もsin,cosは苦手だった(実は今も苦手w)なのであなたの立ち位置はよく分かります
三角関数で苦しんできた私が偉そうに言うと、三角関数の知識なしでは龍神録系STGの開発は難しいんじゃないでしょうか?

それと、どのコードのどこの部分がよく分からないのか詳しく書いてください

Re: 追尾弾の処理しょっぱなからできん

Posted: 2011年8月24日(水) 20:08
by h2so5
ホイール さんが書きました: それと追尾弾はDXライブラリのサイトとこちらのサイトの2つのサンプルプログラミングを見たのですが
ぱっと見、DXライブラリのサイトさんのほうが簡単そうに見えたのですが
実際、どちらが簡単もしくは効率的なのでしょうか?
DXライブラリのサンプルは敵から単一の自機に対して発射される追尾弾で、
龍神録のサンプルは自機から複数の敵に対して発射される追尾弾なので単純比較できません。

自機から複数の敵へ発射する場合は索敵する必要があるので、ソースは長くなります。

Re: 追尾弾の処理しょっぱなからできん

Posted: 2011年8月24日(水) 20:42
by ホイール
h2so5 さんが書きました:DXライブラリのサンプルは敵から単一の自機に対して発射される追尾弾で、
龍神録のサンプルは自機から複数の敵に対して発射される追尾弾なので単純比較できません。
そうだったのですか 分かりもしないのに喋って申し訳ないです

COFE さんが書きました:sin,cosの基礎はできてますか?
実はこれは言いたくなかったのですがまだsinとcosを学校でならってなくて(というか学校でやるの?と
思っています)多分、このサイトを見ている人は成人の人ばかりだとは思いますが私は・・・

atan2という関数で角度を求めていたのですか 
まだじっくりコードを見ていないので見て分からないことがあったらここで質問します

Re: 追尾弾の処理しょっぱなからできん

Posted: 2011年8月24日(水) 20:58
by ホイール
h2so5さんが仰っていたのでDXライブラリのサイト様のサンプルを参考にさせてもらおうと思ったのですが
(本来の目的は敵が主人公を追いかけるというものなので)
ホーミングミサイル2のところに1:1という記述がありますがあれはどういった意味でしょう?

それと初心者質問で申し訳ないのですがサンプルコードにはatan2の文字が見当たらなかったのですが
どのようにして進むべき方向を導きだしているのでしょうか

Re: 追尾弾の処理しょっぱなからできん

Posted: 2011年8月24日(水) 21:16
by h2so5
ホイール さんが書きました:h2so5さんが仰っていたのでDXライブラリのサイト様のサンプルを参考にさせてもらおうと思ったのですが
(本来の目的は敵が主人公を追いかけるというものなので)
ホーミングミサイル2のところに1:1という記述がありますがあれはどういった意味でしょう?
せっかく完全なコードが載っているのですから、実際に実行して比較してみてはどうでしょうか?
速度とホーミングミサイルの向いている方向が1:1
というのは、ミサイルの向いている方向と速度が完全に一致しているという意味です。
この場合、車のような動きになってしまいミサイルとしてはつまらない動きになります。

ホーミングミサイル2の場合は1:1ではないので、車で言うところのドリフト走行のような動きをします。
こちらのほうがミサイルとしては自然に見えるかもしれません。
ホイール さんが書きました: それと初心者質問で申し訳ないのですがサンプルコードにはatan2の文字が見当たらなかったのですが
どのようにして進むべき方向を導きだしているのでしょうか
サンプルではatan2ではなくて外積が使われていますね。

Re: 追尾弾の処理しょっぱなからできん

Posted: 2011年8月24日(水) 21:30
by ホイール
外積・・・ですか・・・ 自分にはなんのことかさっぱりなので素直にatan2を使おうと思います

というかCOFEさんが挙げてくれたコードがまんま答えだったのですか・・・
あとはこのアングルとsin,cosとスピードを使えばなんとかできそうでしょうか

Re: 追尾弾の処理しょっぱなからできん

Posted: 2011年8月24日(水) 23:05
by COFE
どうもです
ホイールさんは何歳ですか?
まだ学校では習っていないと言われていますが私も中学3年生です
しかし、逆に言うと中3でもsin,cosは理解できるし、自機狙いのコードぐらいスラスラ書けるってことです
ホイールさんが何歳か知りませんが小学生でもない限り勉強すれば三角関数なんぞ簡単に理解できます
前にここのフォーラムのソフト屋さんという方に教えてもらった三角関数の勉強用のURL貼っときますね
http://www8.plala.or.jp/ap2/suugaku/sankakukansuu.html
http://www.crossroad.jp/mathnavi/math-i ... urafu.html
三角関数を理解できれば龍神録がもっと深く理解できるようになると思いますよ

[あまりに口が悪いのを修正しました、すいません]

Re: 追尾弾の処理しょっぱなからできん

Posted: 2011年8月24日(水) 23:24
by ホイール
”小学生”でもない限り・・・、、、

まぁ、sinとcosを早いうちから習っておくのも悪かぁないですね
提示されたサイト見ときますん