GAMEPAD 1 RANDOMIZE TIMER REM ============================= REM ============================= REM ----- T I T L E ------------- TITLE: DO BG 0 BG SOURCE ROM(4) BG COPY 0,0,20,16 TO 0,0 PAL 5 TEXT 2,15,"PRESS Z TO START" SPRITE 0,120,48,22 + TIMER / 30 MOD 2 SPRITE 0 PAL 1 IF BUTTON TAP(0,0) THEN GOTO GAME WAIT VBL LOOP REM ============================= REM ============================= REM ----- G A M E --------------- GAME: REM VARIABLES REM ================= GLOBAL LIVES,HEARTSPR,SCORE,FLOOR,GRAV LIVES = 4 HEARTSPR = 17 SCORE = 0 FLOOR = 112 GRAV = 2 GLOBAL VALUE,BROKENCHIP,TARGET,CAUGHT,NEED VALUE = 10 BROKENCHIP = 5 TARGET = 200 CAUGHT = 0 NEED = TARGET / 10 GLOBAL PLAYERID,PLAYERSPR,PLAYERX,PLAYERY,PLAYERDX,PLAYERDY,PLAYERACC,PLAYERFRIC,PLAYERJUMP,PLAYERSTATE$,SHIELDTIME,PLAYEROUCH,IOUCH PLAYERID = 0 PLAYEROUCH = 33 PLAYERSPR = 22 PLAYERX = 64 PLAYERY = 70 PLAYERDX = 0 PLAYERDY = 0 PLAYERACC = 0.4 PLAYERFRIC = 1.3 PLAYERJUMP = 4 PLAYERSTATE$ = "J" SHIELDTIME = 20 GLOBAL BASKETID,BASKETSPR,BASKETX,BASKETY BASKETID = 1 BASKETSPR = 2 BASKETX = PLAYERX BASKETY = PLAYERY - 7 GLOBAL SHADOWID,SHADOWSPR,SHADOWX,SHADOWY SHADOWID = 2 SHADOWSPR = 54 SHADOWX = PLAYERX SHADOWY = PLAYERY + 8 GLOBAL CHIPID,CHIPSPR,CHIPX,CHIPY,CHIPSPD CHIPID = 3 CHIPSPR = 18 CHIPX = 64 CHIPY = -10 CHIPSPD = 0.4 GLOBAL BIN1ID,BIN2ID,BIN1SPR,BIN1X,BIN1Y,BIN1SPD BIN1ID = 4 BIN2ID = 5 BIN1SPR = 66 BIN1X = 64 BIN1Y = 30 BIN1SPD = 0.3 GLOBAL BINLINK1ID,BINLINK2ID,BINLINK1SPR,BINLINK1X,BINLINK1Y BINLINK1ID = 6 BINLINK2ID = 7 BINLINK1SPR = 68 BINLINK1X = BIN1X BINLINK1Y = BIN1Y GLOBAL SPARKID,SPARKSPR SPARKID = 8 SPARKSPR = 71 GLOBAL WARNLIGHTID,WARNLIGHTSPR,WARNLIGHTX,WARNLIGHTY WARNLIGHTID = 9 WARNLIGHTSPR = 98 WARNLIGHTX = 30 WARNLIGHTY = 64 GLOBAL FKWHEEL1ID,FKWHEEL1SPR,FKWHEEL1X,FKWHEEL1Y FKWHEEL1ID = 10 FKWHEEL1SPR = 120 FKWHEEL1X = -60 FKWHEEL1Y = 112 GLOBAL FKWHEEL2ID,FKWHEEL2SPR,FKWHEEL2X,FKWHEEL2Y FKWHEEL2ID = 11 FKWHEEL2SPR =122 FKWHEEL2X = FKWHEEL1X + 8 FKWHEEL2Y = FKWHEEL1Y GLOBAL FFORKID,FFORKSPR,FFORKX,FFORKY FFORKID = 12 FFORKSPR = 125 FFORKX = FKWHEEL1X + 16 FFORKY = FKWHEEL1Y GLOBAL FKTOP1ID,FKTOP1SPR,FKTOP1X,FKTOP1Y FKTOP1ID = 13 FKTOP1SPR = 105 FKTOP1X = FKWHEEL1X FKTOP1Y = FKWHEEL1Y - 8 GLOBAL FKTOP2ID,FKTOP2SPR,FKTOP2X,FKTOP2Y FKTOP2ID = 14 FKTOP2SPR = 106 FKTOP2X = FKWHEEL1X + 8 FKTOP2Y = FKWHEEL1Y - 8 GLOBAL FKLIGHTID,FKLIGHTSPR,FKLIGHTX,FKLIGHTY FKLIGHTID = 19 FKLIGHTSPR = 98 FKLIGHTX = FKWHEEL1X + 1 FKLIGHTY = FKTOP1Y - 6 GLOBAL FKSPD FKSPD = 0.5 REM ================= REM MAIN LOOP REM ================= DO CLS CALL DRWBG CALL DRWHUD CALL UPDGAME IF IOUCH=0 THEN CALL UPDPLAYER ELSE DEC IOUCH IF IOUCH=0 THEN SPRITE OFF PLAYEROUCH END IF WAIT VBL LOOP REM ============================== REM ============================== REM ---- W I N N E R ------------- WINNER: DO CLS BG 0 BG SOURCE ROM(3) BG COPY 0,0,20,16 TO 0,0 TEXT 6,7,"YOU WON!!" IF CAUGHT = NEED THEN TEXT 6,9,"PERFECT!!" IF BUTTON TAP(0,0) THEN GOTO TITLE WAIT VBL LOOP REM ============================== REM ============================== REM ----- G A M E O V E R -------- GAMEOVER: DO CLS BG 0 BG SOURCE ROM(3) BG COPY 0,0,20,16 TO 0,0 TEXT 6,7,"GAME OVER" IF BUTTON TAP(0,0) THEN GOTO TITLE WAIT VBL LOOP REM ========================== REM ========================== REM ----- S U B S ------------ SUB DRWBG BG 1 BG SOURCE ROM(3) BG COPY 0,0,20,16 TO 0,0 END SUB SUB DRWHUD PAL 1 TEXT 0,0,"$" NUMBER 1,0,SCORE,6 PAL 3 FOR I = 1 TO LIVES CELL 14+I,1,HEARTSPR NEXT I END SUB SUB UPDGAME IF LIVES < 1 THEN GOTO GAMEOVER IF SCORE >= TARGET THEN GOTO WINNER SPRITE CHIPID,CHIPX,CHIPY,CHIPSPR + TIMER / 16 MOD 2 SPRITE CHIPID PAL 2 SPRITE BIN1ID,BIN1X,BIN1Y,BIN1SPR SPRITE BIN1ID PAL 3 SIZE 1 SPRITE BIN2ID,BIN1X - 24,BIN1Y,BIN1SPR SPRITE BIN2ID PAL 3 SIZE 1 SPRITE BINLINK1ID,BINLINK1X,BINLINK1Y,TIMER/29 MOD 3 + BINLINK1SPR SPRITE BINLINK2ID,BINLINK1X + 24,BINLINK1Y,TIMER/23 MOD 3 + BINLINK1SPR SPRITE BINLINK1ID PAL 4 SPRITE BINLINK2ID PAL 4 SPRITE SPARKID,BIN1X-32,BIN1Y,TIMER/14 MOD 2 + SPARKSPR SPRITE SPARKID PAL 2 SPRITE WARNLIGHTID,WARNLIGHTX,WARNLIGHTY,WARNLIGHTSPR + TIMER / 8 MOD 4 SPRITE FKWHEEL1ID,FKWHEEL1X,FKWHEEL1Y,TIMER/10 MOD 2 + FKWHEEL1SPR SPRITE FKWHEEL2ID,FKWHEEL2X,FKWHEEL2Y,TIMER/10 MOD 2 + FKWHEEL2SPR SPRITE FFORKID,FFORKX,FFORKY,FFORKSPR SPRITE FKTOP1ID,FKTOP1X,FKTOP1Y,FKTOP1SPR SPRITE FKTOP2ID,FKTOP2X,FKTOP2Y,FKTOP2SPR SPRITE FKLIGHTID,FKLIGHTX,FKLIGHTY,TIMER/8 MOD 2 + FKLIGHTSPR SPRITE FKWHEEL1ID PAL 3 SPRITE FKWHEEL2ID PAL 3 SPRITE FFORKID PAL 3 SPRITE FKTOP1ID PAL 3 SPRITE FKTOP2ID PAL 3 SPRITE FKLIGHTID PAL 0 REM BUDGET TALK REM ================= CALL BUDGET CONTINUE: REM DROP CHIPS REM ========== CHIPY = CHIPY + CHIPSPD REM CATCH CHIP REM ========== IF SPRITE HIT(BASKETID,CHIPID) THEN ADD SCORE,VALUE INC CAUGHT SPRITE CHIPID,CHIPX,CHIPY-8,33 SPRITE CHIPID PAL 1 WAIT 3 CALL DROPCHIP END IF IF CHIPY >= FLOOR THEN ADD SCORE, -BROKENCHIP SPRITE CHIPID,CHIPX,CHIPY,20 WAIT 3 CALL DROPCHIP END IF REM MOVE BINS REM =========== BIN1X = BIN1X - BIN1SPD BINLINK1X = BIN1X - 8 BINLINK2X = BIN1X + 16 REM RESET BINS TO RIGHT SIDE OF SCREEN REM ================================== IF BIN1X < -16 THEN BIN1X = 190 REM MOVE FORKLIFT REM ============= FKWHEEL1X = FKWHEEL1X + FKSPD FKWHEEL2X = FKWHEEL1X + 8 FFORKX = FKWHEEL1X + 16 FKTOP1X = FKWHEEL1X FKTOP2X = FKTOP1X + 8 FKLIGHTX = FKWHEEL1X + 1 REM COLLISION WITH FORKLIFT AND PLAYER REM ======================== IF SPRITE HIT(PLAYERID,FFORKID) THEN SPRITE PLAYEROUCH,SPRITE.X(PLAYERID),SPRITE.Y(PLAYERID),1 SPRITE OFF PLAYERID IOUCH=60 DEC LIVES END IF END SUB SUB DROPCHIP CHIPX = 16 + RND(114) CHIPY = -10 IF CHIPSPD < 1.4 THEN ADD CHIPSPD,0.1 END SUB SUB UPDPLAYER SPRITE PLAYERID,PLAYERX,PLAYERY,PLAYERSPR + TIMER / 14 MOD 2 SPRITE BASKETID,BASKETX,BASKETY,BASKETSPR SPRITE SHADOWID,SHADOWX,SHADOWY,SHADOWSPR SPRITE PLAYERID PAL 1 SPRITE BASKETID PAL 3 SPRITE SHADOWID PAL 1 REM ADD GRAVITY REM =========== PLAYERDY = PLAYERDY + GRAV REM PLAYER MOVEMENT REM ================ IF LEFT(0) THEN ADD PLAYERDX,-PLAYERACC SPRITE PLAYERID,PLAYERX,PLAYERY,TIMER/8 MOD 4 + 38 SPRITE PLAYERID FLIP 1,0 SPRITE BASKETID,PLAYERX,PLAYERY-7,3 SPRITE BASKETID FLIP 0,0 SPRITE SHADOWID,PLAYERX,PLAYERY+8,54 SPRITE SHADOWID FLIP 0,0 ELSE IF RIGHT(0) THEN ADD PLAYERDX,PLAYERACC SPRITE PLAYERID,PLAYERX,PLAYERY,TIMER/8 MOD 4 + 38 SPRITE PLAYERID FLIP 0,0 SPRITE BASKETID,PLAYERX,PLAYERY-7,3 SPRITE BASKETID FLIP 1,0 SPRITE SHADOWID,PLAYERX,PLAYERY+8,54 SPRITE SHADOWID FLIP 1,0 END IF REM WALL OF CRATES REM ================ IF PLAYERX < 17 THEN PLAYERX = 17 IF PLAYERX > 135 THEN PLAYERX = 135 REM PLAYER HITS FLOOR REM =================== IF PLAYERY >= FLOOR THEN PLAYERDY = 0 PLAYERY = FLOOR PLAYERSTATE$ = "S" GRAV = 2 PLAYERFRIC = 1.3 END IF REM JUMPING REM ================== IF BUTTON TAP (0,0) AND PLAYERSTATE$ = "S" THEN ADD PLAYERDY,-PLAYERJUMP GRAV = 0.3 PLAYERFRIC = 1.4 PLAYERSTATE$ = "J" END IF IF PLAYERSTATE$ = "J" THEN SPRITE PLAYERID,PLAYERX,PLAYERY,24 SPRITE BASKETID,PLAYERX,PLAYERY-7,2 SPRITE OFF SHADOWID END IF REM FRICTION REM ======== PLAYERDX = PLAYERDX / PLAYERFRIC REM UPDATE POSITIONING REM ================== PLAYERY = PLAYERY + PLAYERDY PLAYERX = PLAYERX + PLAYERDX BASKETX = PLAYERX BASKETY = PLAYERY - 7 SHADOWX = PLAYERX SHADOWY = PLAYERY + 8 END SUB SUB BUDGET END SUB SUB SHIELD WHILE SHIELDTIME > 0 DEC SHIELDTIME WEND DEC LIVES SHIELDTIME = 20 END SUB #1:MAIN PALETTES 0038343C003D3905002C083E0035312E 0025053B0029252E0024393500051511 #2:MAIN CHARACTERS 00000000000000000000000000000000 81427E421800000081427E66427E4281 C37EE75A3C000000C37E7EBDE77E81C3 437E4D3474000000007C727B5B7F2321 00000034273535000000003427353500 0000005B1B5252000000005B1B525200 00000040004040000505095204584000 00000000000000000000000000000000 00000000000000000000000000000000 081008183C3C3C18081008183C2C3418 00000000000000000000000000000000 0000000000FEFE70000000000071710E FEFE70FFFEFEFE8171710EFEF1C1817F 00000000000000000000000000000000 00000000000000000000000000000000 FF817E407E7428D0FF003C0034200080 18244A85855A241800183C7EFF3E3C18 00006C7C38100000006CD28244281000 0054FEC6BA825400005482BAC6FE0000 003C72286A28723C003C1E1C16141E3C 06008601102408400460210660150000 00000000000000000000000000000000 C30066DD7E24184224421866E75A2424 C3000066FF5A18C32442421866E77E3C 8100BD7E18424224667E66E77E3C0000 00000000000000000000000000000000 450E9EFEFEF4FA819A975DA1C1E3C57E 01FEFEFEFEF4FA81FEF7DDA1C1EBC57E 00E2E6D6B6B4FA81E3F7D5A9C1EBC57E D77F803F093F003D7F80004066407F7E FFFE01DCB474E8D0FF010022428A54AA 000000AA550000000000FF55AAFF0000 00000000000000000000000000000000 92442800000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 22001F761F10A010C542411B3B0E8C16 46001F761F10100CA142411B3B0E0C54 22001F761F108006C542411B3B0EAC12 46001F761F10100CA142411B3B0E0C54 000000FF0000000000000000FF000000 0010105310101000000018B8EB080000 000000F00808080800000040F0101010 3B370E1C2A3CC0004548716345423FC5 64C0803C44FC0300122E5E823202FC8B 000000FFFF0000000000FF0000FF0000 00FF183366CC99330000002344881100 10F7D3163471D39608088B0A0849C98A 00001C08142A0000000022363E3E0000 00000000000000000000000000000000 006E0000000000000000000000000000 00460020004800000000001000000000 FF7E542800000000FF7E542800000000 006E0000000800610000000000440061 00EE0022002800980000009900C60023 101010F3F31010100808EB0808EB0808 10101010101010100808080808080808 000008200A2014000000142228020800 080808C80000000010101030F0000000 001414F7E30014000014E30014F70000 000000FFFF0000000000FF1400FF0000 000029FFFF0000000000D60000FF0000 78E4D4A0804011107098285C74002020 000000000000007E0000000000000000 80C0FF170B04040080403E6B773F3F1F 0103FFA890404000010244F6EEFCFCF8 815A2424140800007E24182414080000 815A2424120A04007E241824120A0400 815A2424281000007E24182428100000 01020510040000000102051004000000 13000008020020021300000802002002 50484422110F00001008040201000000 14142850E000000004040810E0000000 24282814141020002020201010142420 3F7F7F60404060F02A55604040404040 8080C0C0406060608080C04040406040 00000000000000000000000000000000 00000000000000000000000000000000 1010001E0000010020203E0000000000 E1D1A040000000001E2E5BB5E97E0000 00000000000000000F0C000000000000 0000000000000000F030000000000000 000000183C7E00FF0000001018787EF4 285400FFFF00AA7E142AFF00FFFF5500 00000000000000000000000000000000 060B173D5B768C780E1F3C7AF4E87000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FCE8FFFF777161207CFFFFC70A1C1C18 60E0E0DF8CC0808060E0E02073707060 000000C01000000000000000E0000000 00000000000000000000000000000000 18995A18184299180091101010009118 1C225145221C0000103C66763E000000 000A1C2E34180000000A2C1E18240000 005038742C1800000050347818240000 0000182C743850000000241878345000 000018342E1C0A00000024181E2C0A00 7E8181000098000018460081007F5522 00000000000000000000000000000000 00000000000000000000000000000000 3F7F7F60404060F02A55604040404040 9898D8D8587878788080C04040406040 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 007ED4001898000000002BFF187F5522 00000000000000000000000000000000 FCE8FFFF777161207CFFFFC70A1C1C18 FCE8FFC702147C387CFFFFFF7F790100 78F8F8DF8CC0808060E0E02073707060 78F8F81F0C5070E060E0E0E0F3E08000 00000000000000000000000000000000 000000C01000000000000000E0000000 00100020004000000008181C3C3E00FF 00000000000000000000000000000000 1F1F1C1A1818181F0000000000000000 F8F81818000000F80000000000000000 3030333F3F3030300000000000000000 0C0C0C7C7C6C0C0C0000000000000000 3F3F01010101003F0000000000000000 FCFC8080808000FC0000000000000000 3F3F3030333330300000000000000000 FCFC0C0CF0F000000000000000000000 3F3F3030333330300000000000000000 FCFC0C0CF0F000000000000000000000 3030300F0F0101010000000000000000 0C0C0CF0F08080800000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 1F000000000000000000000000000000 F8000000000000000000000000000000 30000000000000000000000000000000 0C000000000000000000000000000000 3F000000000000000000000000000000 FC000000000000000000000000000000 30000000000000000000000000000000 00000000000000000000000000000000 30000000000000000000000000000000 00000000000000000000000000000000 01000000000000000000000000000000 80000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 CD94D40000000000CD94D40000000000 DA939A0000000000DA939A0000000000 9D898900000000009D89890000000000 49D159000000000049D1590000000000 D6D4560000000000D6D4560000000000 DD959D0000000000DD959D0000000000 AA3AAA0000000000AA3AAA0000000000 C9D2890000000000C9D2890000000000 #3:MAIN BG 00001410400441040000000000003A0C 000049074A074B07000000003A043A04 00000004040305030603000350045104 0000000000003A0C0000000000000000 00003B0C3B0C3A040000000000000000 00000000300630063006300630063006 30063006300630063006300630063006 3006300630063006300630061F041F04 1F041F041F041F041F041F041F041F04 1F041F041F041F041F041F041F041F04 1F041F04000049074A07000000003A0C 0000000000004004410400003A042C1C 2B042A042A042A042A042A0400003507 350F380738073A0C3807380700005004 510400003C0C2A042A042A042B042A04 2A042A04000000003507000000003A0C 350F3807380700000000000000000000 0000000000000000000000002A042A04 2A042A042B043C043507350F00003807 350738073807350F3807380700000000 350F00042A042C043B0C000000000000 00000000380735073807000000003807 3807000000000000000035073F04390C 3E043D043F042F042F042F043F042F04 3E043D043F042F042F042F042F042F04 2F043F0454003A0C00000000350F3807 38070000380735073807380735073807 0000350F38073507350F0F061D061E06 350F3807000038073507000000003807 350F38073807380738073507350F3807 1D061E062D062E063807380738073807 38073807380738073807380738073807 38073807380738072D062E061D061E06 0F063807380738073807380738073807 38073807380738073807380738077602 1D061E062D062E060F060F0637073707 37075506340737073707370737073407 370737070F060F062D062E061B051C05 1B051B051A051B051C051B051A051B05 1B051B051B051B051C051B051B051A05 1B051B05 #4:BG 00001410000300030003000340044104 00030003000300034B07000300030003 0003000300030003000300032A042A04 2B043C14500451042C0C2B042A042A04 2A042A042A042A042B042A042A042A04 2A042A040003000300033A0C00030003 3A040003000300030003000300030003 0003000300030003000300032F042F04 2F04390C2F042F0439042F042F043E04 3F043F043D042F042F042F043E042F04 2F042F040003000300033B0400030003 3A040003000300030003000300030003 000300030003000349074A0700030003 00030003000300030003000300030003 00030003000300030003020300031103 59075A07000312028003810382038303 8403850386038703880389038A038B03 000301000100000359075A0700030003 90039103920393039403950396039703 980399039A039B030003350F35070003 000300001D061E063807380738073807 38073507A003A103A203A303A403A503 A603A703350F380738071D062D062E06 38073807380738073807380738073807 38073807380738073807380738073807 38072D061D061E06350F4C034D03350F 3807380738070F063807350F54003807 350738070F06380738071D062D062E06 37075C035D035E033407370737070F06 37070F060F06370737070F060F063407 76022D061C051B051B051A051B051C05 1B051A051B051B051B051B051B051C05 1A051B051B051C051B051B051B051B05 1B051B051B051A051B051B051B051C05 1B051B051A051B051B051B051B051B05 1B051B05000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #15:MAIN SOUND 2800303A000000001800846C003A0000 08006060000000002800303019FE0000 38002020000000003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 80810240404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 250FC0FF00000000000000002A0F00FF 00000000000000000000000000000000 00250F00FF0000000000000000290F00 FF0000000000000000250F00FF000000 00000000002B0F00000000000000FF00 00000000000000000000000000000000 370F00000000FF0000340F00320F00FF 0000000000370F00FF0000380F00FF00 00410F00420F003E0F00000000000000 FF00000000002C0F002D0F002E0F00FF 0000000000000000250F000000002F0F 00000000000000FF0000000000000000 3D0F00FF0000FF0000FF0000320F00FF 0000FF0000FF00003D0F00FF0000FF00 00000000000000000000000000000000 0000000000000000001E0F00FF00001E 0F00FF00001E0F00000000000000FF00 00000000000000000000000000000000