Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 100 REM BASIC Week 2: Halloween Boogaloo
- 110 REM http://reddit.com/r/RetroBattlestations
- 120 REM written by FozzTexx
- 130 REM Atari 8-bit port by Gibstov
- 140 REM ----
- 150 REM Dimension strings
- 160 DIM SP$(264),BE$(8),WT$(128),WE$(128),SE$(264),BT0$(8),BT1$(8),T$(2),S$(20),BL$(30)
- 170 DIM BX(3),BY(3),BW(3),BF(3)
- 200 REM Clear screen and setup variables
- 210 PRINT CHR$(125):POKE 752,1
- 220 CL = 40:RW = 24:REM Columns and Rows of screen
- 300 REM Load background and draw on screen
- 310 GOSUB 1510
- 320 NR = SR:WD = SC:WX = -2
- 330 X = 2:KF = X + WD:IF RND(1) > .5 THEN X = CL - WD - 2:KF = 0
- 340 Y = RW - NR:KW = CL - WD - 4
- 350 GOSUB 2010
- 500 REM Load sprites into variables
- 510 GOSUB 1510:BT0$ = SP$:BE$ = SE$:BC = SC
- 520 GOSUB 1510:BT1$ = SP$
- 530 GOSUB 1510:WT$ = SP$:WE$ = SE$:WW = SC:WH = SR
- 600 REM AnimationP
- 610 NB = 3:WX = -2
- 620 FOR I = 1 TO NB
- 630 BX(I) = INT(RND(1) * (KW - BC)):BY(I) = INT(RND(1) * ((RW - 4 - NR / 2) / NB)) * NB + I + 1
- 640 BW(I) = INT(RND(1) * 2):BF(I) = INT(RND(1) * 9)
- 650 NEXT I
- 660 FOR I = 1 TO NB
- 670 Y = INT(BF(I) / 3):X = INT((BF(I) / 3 - Y) * 3 + .05)
- 680 X = X + BX(I) + KF :Y = Y + BY(I):SP$ = BE$:GOSUB 2010
- 710 BW(I) = BW(I) + 1:IF BW(I) > 1 THEN BW(I) = 0
- 720 BF(I) = INT(RND(1) * 9)
- 730 Y = INT(BF(I) / 3):X = INT((BF(I) / 3 - Y) * 3 + .05)
- 740 X = X + BX(I) + KF :Y = Y + BY(I)
- 741 IF BW(I)=0 THEN SP$=BT0$
- 742 IF BW(I)=1 THEN SP$=BT1$
- 745 GOSUB 2010
- 750 IF WX = -1 THEN SP$ = WE$:X = 0:Y = 0:GOSUB 2010:WX = -2
- 760 IF WX >= 0 THEN SP$ = WT$:X = WX:Y = 0:GOSUB 2010:WX = WX - 1
- 770 IF WX = -2 AND WH + NR < RW AND RND(1) * 50 < 2 THEN WX = CL - WW - 1
- 780 NEXT I
- 790 GOTO 660
- 1000 REM Position cursor at X,Y
- 1010 POKE 84,Y+1:POKE 85,X
- 1020 RETURN
- 1500 REM Load a sprite from DATA into a string
- 1510 SP$ = "":SE$ = "":SR = 0:SC = 0
- 1520 READ T$,S$:IF LEN(SP$) > 0 THEN SP$(LEN(SP$) + 1) = CHR$(155)
- 1525 S$(LEN(S$)+1) = " "
- 1530 SP$(LEN(SP$)+1) = S$:SR = SR + 1:IF LEN(S$) > SC THEN SC = LEN(S$)
- 1540 BL$ = "":FOR I = 1 TO LEN(S$):BL$(LEN(BL$) + 1) = " ":NEXT I
- 1550 IF LEN(SE$) > 0 THEN SE$(LEN(SE$) + 1) = CHR$(155)
- 1560 SE$(LEN(SE$) + 1) = BL$
- 1570 IF T$ <> "SE" THEN GOTO 1520
- 1580 RETURN
- 2000 REM Draw sprite in SP$ at X,Y
- 2010 GOSUB 1010
- 2020 REM Set the left margin to the X position
- 2030 POKE 82,X:PRINT SP$;
- 2040 POKE 82,0
- 2050 RETURN
- 5000 DATA SP, ^
- 5010 DATA SP, / \
- 5020 DATA SP, //|\\
- 5030 DATA SP, / -+- \
- 5040 DATA SP, / \|/ \
- 5050 DATA SP, /_________\
- 5060 DATA SP, | ___ |
- 5070 DATA SP, || | ||::::
- 5080 DATA SP, /\ |-+-||IIII
- 5090 DATA SP, / \|_|_|| \
- 5100 DATA SP, / [] \ |_____
- 5110 DATA SP,/_____ | +-+|
- 5120 DATA SP, | +--+ | |+||
- 5130 DATA SP, | | | | +-+|
- 5140 DATA SP, | |o | |____|
- 5150 DATA SE, |___|__|_|
- 5160 DATA SE,^v^
- 5170 DATA SE,-v-
- 5180 DATA SP, ^
- 5190 DATA SP, _/(_
- 5200 DATA SP, <\\
- 5210 DATA SP, /;_)
- 5220 DATA SP,=='/ <===<<<
- 5230 DATA SP, \__\
- 5240 DATA SE, ''
Add Comment
Please, Sign In to add comment