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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0219
Ashマウスでキャラクターを動かす5解決


Ash

リンク

2009/2/19(Thu) 21:36:54|NO.23482

キャラクターがマウスの後を追いかけて動くようにするにはどうしたらいいのですか?
マウスと同時に動くようにするところまでは出来たのですが、
後を追いかけるようにする方法が思いつきません。
教えてください。お願い致します。



この記事に返信する


check

リンク

2009/2/19(Thu) 22:02:21|NO.23486

HSPのサンプルフォルダ(hsp3.1/sample)のgameフォルダの中にある、
defcfunc.hspを見てみるといい。



tumo0b

リンク

2009/2/19(Thu) 22:17:35|NO.23487

マウスの値を1フレームごとに保存していって
ずらじてxyの値に代入してみては?



Sucret

リンク

2009/2/19(Thu) 22:36:00|NO.23490

サイン、コサインなどを使ってみてはどうですか?
非常に見栄えの悪いサンプルスクリプトですが一応作ってみました。


screen 0,640,480 //円の半径と円の移動量を指定。 #const r 5 #const move 3.0 //円の中心座標指定 X=320.0 Y=240.0 *main redraw 0 color:boxf color 255,255,255 circle x-r,y-r,x+r,y+r //簡単な説明ですが a=atan(mousex-x,y-mousey) // ↑ ↑ //目的地X-現在地X / 現在地Y-目的地Y //sinでa(角度)でのX移動量。0.0〜1.0なので移動量を掛ける。 x=x+sin(a)*move //-cosでa(角度)でのY移動量。同じく0.0〜1.0の値になる。 //PCでは上ほど座標が小さくなるので、マイナスを掛ける必要がある。 y=y-cos(a)*move pos 0,0 mes" 角度="+a mes"移動量 X="+sin(a) mes" Y="+(-cos(a)) redraw 1 await 10 goto,*main



GENKI

リンク

2009/2/19(Thu) 23:28:12|NO.23493

マウスが過去に移動した座標を数フレーム分だけ配列変数に保存しておきます。
配列変数には一定フレーム分の過去の座標データが入ります。
後を追いかけさせたいキャラクターは、常に一番古い座標データの位置に表示させるようにします。
これでマウスが通ったとおりの道筋を追いかけていくキャラクターが出来ます。

他にもいろいろ方法はあるので、この辺の資料を参考にしてみてください。
http://hspdev-wiki.net/?%C4%C9%C0%D7%C3%C6



Ash

リンク

2009/2/20(Fri) 00:50:42|NO.23497

早速、教えていただきありがとうございます。
参考にして作ってみます。
ありがとうございました。



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