HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
1219
aキャラが円を描くように移動する方法6解決


a

リンク

2011/12/19(Mon) 14:47:58|NO.43842

キャラA(a.bmp)とキャラB(b.bmp)があります。

キャラBがキャラAの円を描くように周りをぐるぐる移動する方法を知りたいです。

Aの位置はpos(ax,ay)、Bの位置はpos(bx,by)として

Aはax=250,ay=250の位置から全く動きません。

動かないAの周りをBが円を描くように動かしたいのです。

半径やπなど円の方程式なんかも考えましたが、どうやってスクリプトに√や2乗なんかを
書いたらいいのかわからず止まっています。

それ以外の方法もあるのかもしれません。

HSPに詳しい方知識をかしていただけると嬉しいです。
よろしくお願いします。



この記事に返信する


XBG|YAMANOTE231103(携帯端末)

リンク

2011/12/19(Mon) 14:56:27|NO.43843

円って言うのは1点から同じ距離の点の集まり、という定義に着目すれば
半径の端、つまり円周上にBを置けばいいことは分かりますよね。
あとは三角関数を用いて半径を割り出し、Aの座標から計算すればできます。



a

リンク

2011/12/19(Mon) 15:08:33|NO.43844

すみません。
具体的にどう書けばいいのでしょうか?

(ax-bx)2乗+(ay-by)2乗=(半径)2乗←三平方の定理

(半径)+(半径)×πが円周というのはわかるのですがこれをスクリプトでかけなくて

Bのキャラを円状に動かすという部分までどう結びつけたら良いかわからないんです。



通りすがり

リンク

2011/12/19(Mon) 16:23:09|NO.43845

これらの計算はHSPでは関数を使います。
HSPエディタ上でF1キーを押すと選択したキーワードのヘルプが見れます。

mes powf(2, 8) ; 乗算 mes sqrt(16) ; ルート mes M_PI ; パイ mes sin(M_PI * 2) ; サイン mes cos(M_PI * 2) ; コサイン



fortunehill

リンク

2011/12/19(Mon) 16:32:52|NO.43846

ご参考。

:pos 200,200 :mes "A" for ii,0,370,10 dd = cos(deg2rad(ii))*100,sin(deg2rad(ii))*100 redraw 1 color :pos 200+dd,200+dd(1) :mes "B" redraw 0 color 255,255,255 :pos 200+dd,200+dd(1) :mes "B" await 50 next



a

リンク

2011/12/19(Mon) 17:01:39|NO.43848

ありがとうございました。
とても参考になりました。これで作ってみます。
またできたら報告します。



a

リンク

2011/12/21(Wed) 23:44:47|NO.43881

なんとか形にできました!
ありがとうございました!



ONION software Copyright 1997-2023(c) All rights reserved.