RosettaCodeData/Task/Animate-a-pendulum/Commodore-BASIC/animate-a-pendulum-2.basic
2026-04-30 12:34:36 -04:00

32 lines
864 B
Text

5 print chr$(147);tab(16);"{DOWN}{SHIFT-Q}"
10 gosub 1100
20 theta=π/2
30 g=9.81
40 l=1
50 speed=0
60 px=148
70 py=24
80 bx=px+l*90*sin(theta)
90 by=(py-l*90*cos(theta))+30
150 poke v+1,by:poke v,bx
160 accel=g*sin(theta)/l/50
170 speed=speed+accel/10
180 theta=theta+speed
190 get a$:if a$<>"q" then 80
200 poke v+21,0:end
1100 rem set up a sprite
1105 poke 2040,13
1110 for s=0 to 62:read d:poke 832+s,d:next
1115 v=53248:rem start of vic-ii
1120 poke v+21,1:rem enable sprite
1125 poke v+39,1:rem set color
1130 poke v+1,130:rem y pos
1135 poke v+16,0:pokev,128:rem x pos
1139 rem *** sprite bitmap data ***
1140 data 0,0,0,0,0,0,3,192,0,15,240,0
1145 data 31,248,0,63,252,0,127,254,0,255,255,0
1150 data 255,255,0,255,255,0,255,255,0,255,255,0
1155 data 255,255,0,127,254,0,63,252,0,31,248,0
1160 data 15,240,0,3,192,0,0,0,0,0,0,0
1165 data 0,0,0
1170 return