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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0813
26ど振り子3解決


26ど

リンク

2009/8/13(Thu) 14:04:49|NO.27038

振り子で縄などを表現しようと思っています。
カーソルキーで振り子の支点を動かし、推進力でふらせたいのですが
なにかいい方法はないでしょうか。

#include "hspmath.as"

ddim Px,2
ddim Py,2
ddim Px2,2
ddim Py2,2

font "",20
PX=100.0
PY=100.0

NAGASA=100.0

angle_v = 0.0; //角速度
constant = 1.0*9.8/NAGASA; //質量×重力÷長さ
rotation = 90.0;

NAGASA.1=150.0
angle_v.1 = 0.0; //角速度
constant.1 = 1.0*9.8/NAGASA.1; //質量×重力÷長さ
rotation.1 = 90.0;

//////////////////////////
repeat
;画面再描画OFF
redraw 0

;画面クリア
color 255,255,255 : boxf
;色を戻す
color 0,0,0

;キー入力
stick key,15

speed=5.0
if key&1 : PX-=speed
if key&4 : PX+=speed
if key&2 : PY-=speed
if key&8 : PY+=speed

repeat 2
px.1=px2.0
py.1=py2.0

a.cnt = -constant.cnt*sin((rotation.cnt)*3.141592/180.0);
angle_v.cnt += a.cnt
//徐々に減衰させるには、下のコメントはずす
angle_v.cnt *= 0.96
rotation.cnt += angle_v.cnt

pos 0,cnt*50
mes "角度"+rotation.cnt

;位置設定 XにsinをYにcosを使います。
;その際に「度」を渡さずに「ラジアン」で渡します。
rad.cnt = deg2rad(270+rotation.cnt)

PX2.cnt=(cos(rad.cnt)*NAGASA.cnt)+PX.cnt
PY2.cnt=(sin(rad.cnt)*-NAGASA.cnt)+PY.cnt
line PX.cnt,PY.cnt,PX2.cnt,PY2.cnt

pos PX2.cnt-10,PY2.cnt-10
;文字表示
mes "○"
loop

;画面再描画ON
redraw 1
wait 1
loop



この記事に返信する


let

リンク

2009/8/13(Thu) 14:50:27|NO.27039

簡易でも良ければ
if key&1 { angle_v.0-=1.0:angle_v.1-=1.0 }
if key&4 { angle_v.0+=1.0:angle_v.1+=1.0 }
こんな感じですかね...



let

リンク

2009/8/13(Thu) 16:40:43|NO.27042

意図的にはこっちかも?
if key&1 : PX-=speed: angle_v.0+=0.05:angle_v.1+=0.05
if key&4 : PX+=speed: angle_v.0-=0.05:angle_v.1-=0.05



26ど

リンク

2009/8/14(Fri) 19:29:46|NO.27055

ありがとうございます、動いているときにangle_vの値をいじればよかったんですね



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