#uselib "physic.hpi" #func phy_init phy_init 0 #func phy_setpos phy_setpos 0 #func phy_setspeed phy_setspeed 0 #func phy_calc phy_calc 0 #func phy_move phy_move $83 #func phy_bye phy_bye $100 screen 0,400,400,1 dim dt,1000 s=5 dim len,3,100 ;データを変えると、自由に形状の設定ができます。 ;サンプルデータ:T字 len=23:w=8 ;制御棒の数(^^; len.0.1=0,1,1000,1,2,1000,2,3,2000,3,4,1000,4,5,2000,5,6,1000,6,7,1000 ;基本図形の設定(点1,点2,距離)で指定。 len.0.8=7,0,3000,0,7,3000,1,6,3000 ;↑長辺。最下辺は2重に指定して硬くねー len.0.11=0,2,1414,1,3,2236,6,4,2236,2,4,2236,5,3,2236,7,5,1414 len.0.17=2,7,2236,5,0,2236,2,5,1000 len.0.20=3,7,3605,4,0,3605,6,0,3162,1,7,3162 ;↑かすがい。たくさん制限を入れて、歪みを少なくするの。 ;サンプルデータ:四角形 ;len=6:w=4 ;len.0.1=0,1,2000,1,2,2000,2,3,2000,3,0,2000 ;len.0.5=0,2,2828,1,3,2828 ;サンプルデータ:三角形 ;len=3:w=3 ;len.0.1=0,1,3000,1,2,3000,2,0,3000 ew1=w*2-2:ew2=ew1+1 ;サンプルデータ:ゴムワイヤー? ;w=30:ew1=0:ew2=1:c=1 ;repeat w-1:len.0.c=cnt,cnt+1,200:c++:loop ;repeat w-2:len.0.c=cnt,cnt+2,400:c++:loop ;len=c-1 phy_init w repeat w:phy_setpos cnt,cnt*949,cnt+1*100:loop repeat getkey a,1:if a : phy_setpos 0,mousex<>s,-dt.ew2>>s+370 t1=0:t2=1:repeat w:line dt.t1>>s,-dt.t2>>s+370:t1+2:t2+2:loop redraw 1:redraw 2:await 20 loop stop