プレイ日記
【質問】スライドパッドを傾けた方向にSPを向けるのはどうやるんですか??
5そうだね
プレイ済み
返信[1]
親投稿
Soybeanman 2013niconico
三角関数とかの知識が要りますが大丈夫でしょう。 ATAN()とSPROTを使うと簡単かも知れません。
1そうだね
プレイ済み
返信[2]
親投稿
BlackSoft BlackSoft.mkII3g
使う関数、命令。 調べながら作ってみてください。 注意として、STICKで得られるY軸方向の値(符号)は、画面の座標系とは逆になります。 STICK ATAN DEG SPROT
2そうだね
プレイ済み
返信[3]
親投稿
かたけ~ katakei0505
答え。とまでは言いませんけど、自分にはこれが限界です。ちなみに、ATANの行の一番後ろについている +90 は、スプライトによって変える必要あります。
0そうだね
プレイ済み
返信[4]
親投稿
かたけ~ katakei0505
間違えたorz 自分のプログラムの場合は、SPROTの時点で +90 してましたね… まあどちらにせよ、役割は一緒です。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
ATAN(STY,STX)としてやればスライドパッドを倒した角度がラジアンで取得できます。 SPROTは角度が「度」なのでDEGを用いて度に変換する必要があります。 しかし、STYと画面のY座標は正負が逆(画面は下の方ほど大きな座標になるけどスライドパッドは上に動かす方が大きな値になる)ため回転方向が逆になったり、ATANの角度算出の基準点とSPROTの回転の基準点も90度異なるためIFを使ったりして補正が必要になります。 しかし、正負が逆であるためIF等を使わずともXとYを入れ替えるだけで回転方向の補正と90度補正の両方が同時に可能になります。 端的に言えばSPROT 0,DEG(ATAN(STX,STY))とするだけでスライドパッドの回転に合わせてスプライトが回転します。 スライドパッドの正負が逆になっているのはこのためです。
1そうだね
プレイ済み
返信[6]
親投稿
出来ますった!
0そうだね
プレイ済み
返信[7]
親投稿
ATAN()のxとyを入れ替えると逆回りになるということは知ってたけど、STICKとの相性がいいとは気づかなかったぁぁぁぁ
1そうだね
プレイ済み