-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgrav_wars_forces2.bas
58 lines (58 loc) · 1.2 KB
/
grav_wars_forces2.bas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
1 PLANETS=3
5 DEG
6 EXEC INIT_MISSILE
7 EXEC INIT_PLANETS
25 DEG
50 GRAPHICS 8
60 COLOR 1
65 EXEC DRAW_PLANETS
70 ------------------------------
80 IF X>0 AND X<319 AND Y>0 AND Y<160 THEN PLOT X,Y
90 X=X+VX:Y=Y+VY
91 FOR I=0 TO 2
92 XD=PLANETX(I)-X
93 YD=PLANETY(I)-Y
94 L=SQR(XD*XD+YD*YD)
95 L=L^3
96 FPX=XD/L
97 FPY=YD/L
98 VX=VX+FPX*PLANETM(I)
99 VY=VY+FPY*PLANETM(I)
100 NEXT I
200 GOTO 80
999 STOP
11000 PROC INIT_PLANETS
11001 REM DIM ARRAYS
11002 DIM PLANETX(PLANETS)
11003 DIM PLANETY(PLANETS)
11004 DIM PLANETM(PLANETS)
11005 DIM PLANETR(PLANETS)
11010 REM PLANET #1
11020 PLANETX(0)=200
11030 PLANETY(0)=80
11040 PLANETM(0)=50
11050 PLANETR(0)=25
11060 REM PLANET #2
11070 PLANETX(1)=100
11080 PLANETY(1)=40
11090 PLANETM(1)=50
11100 PLANETR(1)=25
11110 REM PLANET #3
11120 PLANETX(2)=120
11130 PLANETY(2)=130
11140 PLANETM(2)=50
11150 PLANETR(2)=25
11180 ENDPROC
12000 PROC DRAW_PLANETS
12010 FOR I=0 TO PLANETS-1
12020 CIRCLE PLANETX(I),PLANETY(I),PLANETR(I)
12030 NEXT I
12040 ENDPROC
13000 PROC INIT_MISSILE
13010 ALPHA=90
13020 SPEED=2
13030 X=120
13040 Y=90
13050 VX=SPEED*SIN(ALPHA)
13060 VY=-1*SPEED*COS(ALPHA)
13099 ENDPROC