mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-05-28 17:41:29 +00:00
fireworks: initial checkin
This commit is contained in:
parent
30e1173935
commit
728b06a876
18
fireworks/Makefile
Normal file
18
fireworks/Makefile
Normal file
|
@ -0,0 +1,18 @@
|
|||
include ../Makefile.inc
|
||||
|
||||
DOS33 = ../dos33fs-utils/dos33
|
||||
B2D = ../bmp2dhr/b2d
|
||||
|
||||
all: fireworks.dsk
|
||||
|
||||
fireworks.dsk: FIREWORKS.BAS
|
||||
$(DOS33) -y fireworks.dsk SAVE A FIREWORKS.BAS
|
||||
|
||||
|
||||
####
|
||||
|
||||
FIREWORKS.BAS: fireworks.bas
|
||||
../asoft_basic-utils/tokenize_asoft < fireworks.bas > FIREWORKS.BAS
|
||||
|
||||
clean:
|
||||
rm -f *~ *.o *.lst *.inc FIREWORKS.BAS
|
32
fireworks/fireworks.bas
Normal file
32
fireworks/fireworks.bas
Normal file
|
@ -0,0 +1,32 @@
|
|||
100 REM Fireworks by FozzTexx, originally written in 1987
|
||||
110 REM Constants: BT/RT is screen size, MG is margin
|
||||
120 REM Variables:
|
||||
130 REM XV/YV are velocity, PK is highest point of rocket
|
||||
140 REM MS is max steps, CS is current step, X/Y/X1/Y1/X2/Y2 is rocket position
|
||||
150 REM CL is Apple II hi-res color group
|
||||
160 HGR:POKE 49234,0:REM Poke hides 4 line text area
|
||||
170 BT = 191:RT = 280:MG = 24
|
||||
180 CL = INT(RND(1) * 2):XV = INT(RND(1) * 3) + 1:YV = - (INT(RND(1) * 5) + 3)
|
||||
190 MS = INT(RND(1) * 25) + 40:X = INT(RND(1) * (RT - MG * 2)) + MG
|
||||
200 Y = BT:PK = Y:IF X > RT / 2 THEN XV = - XV
|
||||
210 REM Draw rocket
|
||||
220 FOR CS = 1 TO MS:Y1 = Y2:Y2 = Y:X1 = X2:X2 = X
|
||||
230 X = X + XV:Y = Y + YV:YV = YV + .12
|
||||
240 IF Y < PK THEN PK = Y
|
||||
250 IF X < = MG OR X > = RT - MG OR Y < = MG OR (YV > 0 AND (Y > BT - INT(BT - PK) / 2 OR Y > = BT - MG)) THEN CS = MS
|
||||
260 IF CS < MS THEN HCOLOR= CL * 4 + 3:HPLOT X2,Y2 TO X,Y
|
||||
270 HCOLOR= CL * 4:HPLOT X1,Y1 TO X2,Y2:NEXT CS
|
||||
280 REM Draw explosion near X2,Y2
|
||||
290 X2 = INT(X2):Y2 = INT(Y2):X = INT(RND(1) * 20) - 10:Y = INT(RND(1) * 20) - 10
|
||||
300 HCOLOR= CL * 4 + 3:HPLOT X + X2,Y + Y2
|
||||
310 FOR I = 1 TO 9
|
||||
320 IF I < 9 THEN N = I:HCOLOR= CL * 4 + 3:GOSUB 370
|
||||
330 N = I - 1:HCOLOR= CL * 4:GOSUB 370
|
||||
340 NEXT
|
||||
350 IF RND(1) < .5 THEN 290
|
||||
360 GOTO 180
|
||||
370 HPLOT X + X2 + N,Y + Y2 + N:HPLOT X + X2 - N,Y + Y2 - N
|
||||
380 HPLOT X + X2 + N,Y + Y2 - N:HPLOT X + X2 - N,Y + Y2 + N
|
||||
390 HPLOT X + X2,Y + Y2 + N * 1.5:HPLOT X + X2 + N * 1.5,Y + Y2
|
||||
400 HPLOT X + X2,Y + Y2 - N * 1.5:HPLOT X + X2 - N * 1.5,Y + Y2
|
||||
410 RETURN
|
BIN
fireworks/fireworks.dsk
Normal file
BIN
fireworks/fireworks.dsk
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user