30 lines
1.4 KiB
QBasic
30 lines
1.4 KiB
QBasic
10 GOSUB 9000
|
|
100 PRINT CHR$(147):INPUT "LAUNCH SPEED (5-30)";V
|
|
110 IF V<5 OR V>30 THEN 100
|
|
120 INPUT "ANGLE (10-80 DEGREES)";A
|
|
130 IF A<10 OR A>80 THEN 120
|
|
140 R=A*3.14159265/180:G=9.8
|
|
150 D=V*V*SIN(2*R)/G:H=V*V*SIN(R)*SIN(R)/(2*G)
|
|
160 PRINT CHR$(147):PRINT "PROJECTILE LAB SPEED";V;" ANGLE";A
|
|
170 PRINT "RANGE";INT(D*10)/10;"M HEIGHT";INT(H*10)/10;"M"
|
|
180 FOR X=1 TO 38:POKE 1024+22*40+X,45:POKE 55296+22*40+X,12:NEXT
|
|
190 FOR I=0 TO 38:X=D*I/38:Y=X*TAN(R)-G*X*X/(2*V*V*COS(R)*COS(R))
|
|
200 IF Y<0 THEN Y=0
|
|
210 Q=21-INT(Y/H*17):IF Q<4 THEN Q=4
|
|
220 P=1024+Q*40+I+1:POKE P,42:POKE P+54272,7:NEXT
|
|
230 PRINT:PRINT "R=RELAUNCH Q=QUIT"
|
|
240 GET A$:IF A$="R" THEN 100
|
|
250 IF A$<>"Q" THEN 240
|
|
260 GOTO 9900
|
|
9000 POKE 53280,0:POKE 53281,0:PRINT CHR$(147);CHR$(154)
|
|
9010 PRINT:PRINT:PRINT " PROJECTILE LAB":PRINT
|
|
9020 PRINT CHR$(5);" PLOT A FLIGHT THROUGH GRAVITY":PRINT:PRINT
|
|
9030 PRINT CHR$(153);" CONTROLS":PRINT
|
|
9040 PRINT CHR$(158);" 5-30";CHR$(5);" SPEED ";CHR$(158);"10-80";CHR$(5);" ANGLE"
|
|
9050 PRINT " ";CHR$(158);"R";CHR$(5);" RELAUNCH ";CHR$(158);"Q";CHR$(5);" QUIT":PRINT:PRINT
|
|
9060 PRINT " HTTPS://C64.P20.DEV":PRINT
|
|
9070 PRINT CHR$(152);" RELEASED 22 OCTOBER 2026":PRINT:PRINT
|
|
9080 PRINT CHR$(158);" PRESS SPACE TO START"
|
|
9090 GET A$:IF A$<>" " THEN 9090
|
|
9100 RETURN
|
|
9900 POKE 53280,14:POKE 53281,6:PRINT CHR$(147):END
|