Still not perfect, the code is ugly, there are bugs, still a lot of C, etc... but at least now we don't need turbo boost on the emulator

Well, it's just for quick demos, does not matter if it looks bad, it's just a prototype.
Code: Select all
10 CLS
20 SX=20:X1=SX:X4=SX
30 SY=1:Y1=SY:Y4=SY
40 EX=5:X2=EX:X5=EX
50 EY=24:X2=EY:Y5=EY
60 BX=13:X3=BX:X6=BX
70 BY=10:Y3=BY:Y6=BY
75 R=.01
80 Z=126:GOSUB 200
90 K$=KEY$
95 Q=0
100 IF K$="Q" THEN SX=SX-1:Q=1
110 IF K$="W" THEN SX=SX+1:Q=1
120 IF K$="A" THEN BX=BX-1:Q=1
130 IF K$="S" THEN BX=BX+1:Q=1
140 IF K$="Z" THEN BY=BY-1:Q=1
150 IF K$="X" THEN BY=BY+1:Q=1
153 IF RND(1)<RTHEN BX=BX-1:Q=1:GOTO 160
154 IF RND(1)<RTHEN BX=BX+1:Q=1:GOTO 160
155 IF RND(1)<RTHEN BY=BY-1:Q=1:GOTO 160
156 IF RND(1)<RTHEN BY=BY+1:Q=1
160 IF SX<2 OR SX>39 THEN SX=X1
162 IF BX<2 OR BY>39 THEN BX=X3
164 IF BY<1 OR BY>24 THEN BY=Y3
170 IF Q=0 THEN GOTO 90
175 X4=X1:Y4=Y1:X5=X2:Y5=Y2:X6=X3:Y6=Y3:Z=32:GOSUB 200
180 X4=SX:Y4=SY:X5=EX:Y5=EY:X6=BX:Y6=BY:Z=126:GOSUB 200
185 X1=SX:Y1=SY:X2=EX:Y2=EY:X3=BX:Y3=BY
190 GOTO 90
200 FOR T=0 TO 1 STEP .05
210 X=INT((1-T)*(1-T)*X4+2*(1-T)*T*X6+T*T*X5)
220 Y=INT((1-T)*(1-T)*Y4+2*(1-T)*T*Y6+T*T*Y5)
230 PLOT X,Y,Z
240 NEXT
241 IF Z=126 THEN Z=127
245 PLOT X4,Y4,Z
246 PLOT X5,Y5,Z
247 PLOT X6,Y6,Z
250 RETURN