投稿
かたけ~ katakei05
スプライト(車)を向いている方向に動かすにはどう書けばいいのでしょうか(・~・)? 詳しい人教えてください!
0そうだね
プレイ済み
返信[1]
親投稿
けい kei0baisoku
縦や横以外の、斜めの方向に進ませたいという事でしょうか? 「三角関数」というのは知ってますでしょうか。角度から座標を知ることが出来る方法です。 プチコンでSIN,COSという命令です。 これの使い方を覚えたらやりたいものが作れると思います。
0そうだね
プレイ済み
返信[2]
親投稿
かたけ~ katakei05
コメントありがとうございます。 三角関数は、ネットで調べてみたのですが、どうもよくわかりません。 よろしければ、どう使うのか教えてください。
0そうだね
プレイ済み
返信[3]
親投稿
けい kei0baisoku
>кαταкεıさん らじゃーでーす(´ω`)\ が、三角関数を理解するのはプチコンと言うより数学のお話に近くなりますので、プチコンに特化した簡単な説明レベルです。 例えばスプライトにSPROT 0,30とすると、30度回転して右斜め下を向きますね。 この向きに動かすために知りたいのは、例えば斜め下の方向に100ドット進んだときの座標だと思います。 ちなみに30度だと右に86.6ドット、下に50ドットになります。 ゲームで使えるようにするためには、「30度」のところが何度になってもプログラムで計算させる必要がありますね。
0そうだね
プレイ済み
返信[4]
親投稿
けい kei0baisoku
ダイレクトモードで ? COS( RAD(30) ) ? SIN( RAD(30) ) と打ち込んでみてください。 それぞれ、 0.8660……と0.5になると思います。 SINとCOSは 「指定された向きに1ドット進んだ時の、XとY方向の移動距離」 を返してくれる命令です。 COSがX方向で、SINがY方向です。 RAD()はおまじないみたいなものだと思ってください。SINとCOSは「角度」でなく「ラジアン」というちょっと変わった単位で指定しないといけなくて、RAD()関数で変換します。
0そうだね
プレイ済み
返信[5]
親投稿
けい kei0baisoku
例だとやりたいのは「100ドット進ませる」なので、これに100をかけてあげればオッケーです。 角度のところを色々変えてあげれば、好きな向きの座標を計算できるようになります。 やりたいこととずれていたら、結果をみながらプラスマイナスを逆にしたり、90度を足したり引いたりすればだいたいうまくいきます。 と、こんな感じですが、何となくわかりましたでしょうか?
0そうだね
プレイ済み
返信[6]
親投稿
かたけ~ katakei05
分かりやすい説明ありがとうございました。 早速やってみます。
0そうだね
プレイ済み
返信[7]
親投稿
かたけ~ katakei05
オォゥフ… 実際にやってみたら、どうして自分はこんな簡単なことに気づけなかったんだろう…と思うほど簡単でしたw
0そうだね
プレイ済み
返信[8]
親投稿
けい kei0baisoku
良かったです!(´∀`) サンカクカンスーとかサインとかコサインとか言われると難しそうですけど、仕組みはほんと単純なんですよね。 ミーバースに、分かりやすい解説とプログラムでの使い方を投稿してみようと前から思いつつ、未だ実現せず………(-ω-) 差し支えなければ、кαταкεıさんがもう三角関数を習っているかまだか、教えてもらってもいいですか? まだなら、学校で習う前でも使えるよっていう参考にできそうですので。
0そうだね
プレイ済み
返信[9]
親投稿
かたけ~ katakei05
僕はまだ中3なので習ってないです。
0そうだね
プレイ済み
返信[10]
親投稿
けい kei0baisoku
>кαταкεıさん 了解です!(^O^) やっぱりまだでしたか。自力で色々探して頑張ってたのですね。 他の人に伝える時の参考にもなりました。ありがとうございます。
0そうだね
プレイ済み
返信[11]
親投稿
かたけ~ katakei05
いえいえ~ こちらこそありがとうございました。
1そうだね
プレイ済み