プレイ日記
けんちゃん miyakrg0711zx09
SPANIMで円を描いて動かすにはどうすればいいのですか?
1そうだね
プレイ済み
返信[1]
親投稿
natto- natto-3030
「SP」が付いている命令はSPRITE専用なのでSPRITEデータに丸を描いてSAVEしてから動かせば良いでしょう。
2そうだね
プレイ済み
返信[2]
親投稿
みむ*mim hidemimtp
私も最初natto-さんと同じように考えたのですが、これは「キャラを円を描く軌跡で動かしたい」という事かも? だとしたらSPANIMを使うのは向いていないですね。
3そうだね
プレイ済み
返信[3]
親投稿
けんちゃん miyakrg0711zx09
そうです。スプライトを円を描く軌跡で動かす方法が分からないんです。SPOFSで動かすんですか?座標の変数を円を描くように変えていくんですか?でもどうやって…
0そうだね
プレイ済み
返信[4]
親投稿
けい kei0baisoku
使う命令はSPOFSになると思います。 角度を変数で持ってあげて、毎フレームちょっとずつ足しながら、SINとCOSで座標に変換して更新するのはどうでしょう?
1そうだね
プレイ済み
返信[5]
親投稿
ツララ LongIceSword
SPANIMで円運動させたいなら、”XY”で座標を変えるんじゃなくて、SPHOMEで中心座標を変えてから"R"で回転角度を弄ってやればいいんじゃないです? そのままだと絵も回転しちゃうんで、位置変更用のスプライトとSPLNKとを上手く組み合わせて、逆回転で補正する必要ありますけれど。 スプライトの見た目の位置は動かない様にしつつ、SPHOMEの座標を変更する命令あったら便利そうですね。
2そうだね
プレイ済み
返信[6]
親投稿
みむ*mim hidemimtp
角度をAとして、0~360で回します(この範囲外でも構いません) WHILE 1  A=(A+5) MOD 360  X=100+COS(RAD(A))*50  Y=100+SIN(RAD(A))*50  SPOFS 0,X,Y  VSYNC WEND 5度ずつ移動、中心点が100,100、半径が50の例です。
2そうだね
プレイ済み
返信[7]
親投稿
けんちゃん miyakrg0711zx09
みむさんのコードで円運動できました!しかし、何故なのかは分かりません。難しいですねぇ。
0そうだね
プレイ済み
返信[8]
親投稿
みむ*mim hidemimtp
三角関数なので・・・・理解するに越したことはないですが、分からなくてもとりあえずプログラミングでは「COSは角度からX座標、SINは角度からY座標を算出するもの」と思っておけばいいと思います。 ただしこれらは「半径1の円」における座標で0~1の範囲の値しか返さないので、半径を50ドットにしたければ50倍する必要があるということです。 で、三角関数では、角度はいわゆる0~360度の単位ではなくラジアンという単位を使うという数学上の決まりごとがあるので、RAD()で変換しなくちゃいけないよ、という事です。 この2つだけですが、最初は「そういうもんだ」でもいいと思います。
1そうだね
プレイ済み