僕の力ではここまででした。sin,cosをうまく使えませんでした。見て頂ければ解ると思いますが、車の向きと移動していく方向が対応しません。すればよいのでしょうか。ややこしくなっていますが、TargetX,TergetYはいらないと思います。シンプルにするために次のようにして下さい。旋回キーでは角度(car.roll)だけを決めます。上下キーでは速度(car.Speed)の増減だけします。スピード(x,y)を求めます。car.rollをsinとcosしてcar.Speedを掛けたものがx,yに分けたスピードです。このスピード(x,y)が移動ベクトルと呼ばれるものですね。座標(x,y)にスピード(x,y)を足します。これでRCカーになると思います。肝は(3)の部分ですね。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。7年前softyaさんの言うとおり(3)で分からなくなってしまいました。90°違う方向に行ってしまいます。7年前これはsin/cosが90度ズレた関係にあるって知っていると解決します。car.SpeedX=sin(car.Roll)*car.Speed;car.SpeedY=cos(car.Roll)*car.Speed;で90度のズレが解消します。他にも問題があって上下などの方向性がおかしくなります。狙ったベクトルを求めるにはcar.SpeedX=sin(car.Roll)*car.Speed;car.SpeedY=-cos(car.Roll)*car.Speed;とすれば完全にRCカーとなるでしょう。いう所は画面座標系(yのプラスが下方向)と数学の時間に使うグラフ(yのプラスが上方向)の違いです。これがベクトルの基本なのですが理解できましたでしょうか?・ベクトルは移動量を表すことが出来る。・方向と速度から移動ベクトルを求めることが出来る。・座標と移動ベクトルを足すと移動先の座標と成る。これは3次元でも変わりません。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。出来ました!ありがとうございます。おかげでとても勉強になりました。出来ました!ありがとうございます。おかげでとても勉強になりました。3Dの方は大丈夫でしょうか?XYZ軸の方向とか全然違いますので注意して下さい。あとベクトルの回転にRCカーではsin/cosを使っていますが3軸もあるので行列を使って回転させないとややこしいことになります。平面上の回転であるシンプルな1軸回転に限定すればsin/cosを使った方法は3Dでも有効です。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。忘れて解決にしてしまいました。忘れて解決にしてしまいました。行列とはどのようなものでしょうか?【補足】解決は外しておきました。この際は理屈は抜きで説明しますが、ベクトルを行列と演算すると回転・拡縮・移動したベクトルが得られます。回転も3軸の回転が可能です。飛行機で言うとピッチ、ヨー、ロールですね(実は使い方次第でジンバルロックという問題があるのですが困ってからで良いです)。同様にモデルに行列を設定するとモデルに対して回転・拡縮・移動が行われます。カメラに関しても行列が演算に使われていますので3Dは行列抜きに語れません。行列同士は掛け算や加算が可能ですが、今のところ掛け算さえ理解していれば良いですね。掛け算は順番が重要で順番を間違えると結構とんでもないことになります。X,Y,Zの掛け合わせにも順番があります。回転移動行列ができます。//モデルに設定します。この例の場合の処理は移動ベクトルと回転差分は含まれていません。最近のトピックより飛行体の処理。スピードやピッチ、ヨー、ロールの回転などが可能です。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。7年前ありがとうございます。未熟なものでどのようにすればよいのかわかりません。「角度からベクトル」のサンプルコードを解説するとややこしくなるので、ご自分で色々実験される方が良いと思います。3D空間での挙動は動作をイメージできるかどうかですので、色々いじってどんな風に動くか感覚で掴んでください。大雑把につかめたのなら、細かい部分の質問にはお応えします。回転移動行列ができます。//モデルに設定します。これで物体は回転して移動するんだなと言う程度の理解が出来ていれば良いです。本当に理論面を解説するとこうなります。本」http://www.amazon.co.jp/gp/product/toc/4797356774/こういう本を買われたほうが良いでしょう。数学として行列を知っている大学生でも行列演算を使った応用の世界である3Dゲームを作るイメージを掴むのは大変なので、それなりの理解・勉強は避けられないと思ってもらったほうが良いと思います。【補足】エースコンバットのような物理運動をシミュレートして自由移動を許すシューティングは力学・数学的に色々難しなります。ファイヤーフォックスの様な固定方向移動のシューティングを作る分にはエースコンバットよりもやることが減り楽ができます。自分の出来ることに合わせてシューティングのルールを決めるのも時には必要かと。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。7年前ありがとうございます。ありがとうございます。教えて頂けますか?ごめんなさい。スターフォックスです。XZ平面における90度回転はRCカーと同じで行列も必要ありません。これが分からないならRCカー自体のソースコードをわかってないことに成るんですが。【補足】RCカーはXY平面における回転ですので、これを軸をちょっと変えてXZ平面で行うだけです。軸のプラスマイナスの方向が変わるのでそこは要注意です。三角関数でつまずいているなら、ココらへんからもう一度。cosって何?(三角比の基本)」http://dixq.net/g/h_06.htmlここも直感的。数学的な座標系なのでYのプラスは上方向。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。