'SETMUSIC 0 "L5CCCFRF>L6C." PLAYMUSIC START: BORDER INK_BLACK COLOR INK_RED + PAPER_BLACK CLS LOCATE 0 1 PRINT !8A87858A87858A8783888F8D8A858E81 LOCATE 0 2 PRINT !8A878B8A878B8A87818A8D8F8A8F8D80 LOCATE 0 3 PRINT !8A8D8E8A858A8A8F8F8A858F8A858B85 COLOR INK_YELLOW + PAPER_BLACK LOCATE 3 4 PRINT !8E8F8D8A858A858F8F8F LOCATE 3 5 PRINT !8F808F8A858A85808F80 LOCATE 3 6 PRINT !8B8F87828F8F81808F80 COLOR INK_WHITE + PAPER_BLACK W = 0 MENU_BLINK: LOCATE 0 9 PRINT "PRESS A TO START" UPDATESCR INC W IF KEYPRESSED BTN_A THEN GOTO INIT_GAME END IF W < 25 THEN GOTO MENU_BLINK END MENU_BLINK2: LOCATE 0 9 PRINT " " UPDATESCR INC W IF KEYPRESSED BTN_A THEN GOTO INIT_GAME END IF W < 50 THEN GOTO MENU_BLINK2 END W = 0 GOTO MENU_BLINK INIT_GAME: CLS LIVES = 5 LEVEL = 1 SCORE = 0 X = 64 ' X DE LA PALA BX = 64 BY = 48 ' X I Y DE LA BOLA DX = 1 DY = 1 ' VELOCITAT EN X I Y DE LA BOLA ' DEFINIM ELS CARACTERS PER ALS BLOCS I LA BOLA SETCHAR 16 !007F7F7F7F7F7F7F SETCHAR 17 !00FFFFFFFFFFFFFF ' PINTEM ELS BLOCS COLOR INK_RED + PAPER_BLACK LOCATE 0 1 PRINT !10111011101110111011101110111011 COLOR INK_YELLOW + PAPER_BLACK LOCATE 0 2 PRINT !10111011101110111011101110111011 COLOR INK_GREEN + PAPER_BLACK LOCATE 0 3 PRINT !10111011101110111011101110111011 COLOR INK_BLUE + PAPER_BLACK LOCATE 0 4 PRINT !10111011101110111011101110111011 ' DEFINIM ELS SPRITES SETSPRITE 0 &h90 INK_WHITE SETSPRITE 1 &H83 INK_CYAN SETSPRITE 2 &H83 INK_CYAN 'PINTEM EL MARCADOR COLOR INK_YELLOW + PAPER_BLACK LOCATE 11 0 FOR I = 0 TO LIVES PRINT CHR &HE0 END LOCATE 8 0 PRINT STR LEVEL LOCATE 1 0 PRINT STR SCORE, "00" MAIN_GAME: ' MOVIMENT DE LA PALA IF KEYPRESSED BTN_LEFT THEN GOSUB MOVE_LEFT END IF KEYPRESSED BTN_RIGHT THEN GOSUB MOVE_RIGHT END ' MOVIMENT DE LA BOLA BX = BX + DX IF BX >= 131 THEN GOSUB PING2 BX = 131 DX = -DX END IF BX <= 5 THEN GOSUB PING2 BX = 5 DX = -DX END BY = BY + DY IF BY <= 5 THEN BY = 5 DY = -DY END TX = (BX-5)/8 TY = (BY-5)/8 CHAR = GETCHAR TX TY IF (BY >= 16) AND NOT(CHAR = 32) THEN GOSUB PING3 INC SCORE LOCATE 1 0 PRINT STR SCORE, "00" PUTCHAR TX TY 32 IF TX MOD 2 = 0 THEN PUTCHAR TX+1 TY 32 ELSE PUTCHAR TX-1 TY 32 END DY = -DY IF (GETCOLOR TX TY) = INK_YELLOW + PAPER_BLACK THEN DY = 2 END END IF BY >= 99 THEN GOSUB LIVE_LOST END IF (BY >= 91) AND (DY < 100) THEN IF (BX+3 >= X) AND (BX+3 < X+16) THEN GOSUB PING1 DY = -DY IF (BX+3 >= X) AND (BX+3 < X+4) THEN DX = -2 END IF (BX+3 >= X+4) AND (BX+3 < X+8) THEN DX = -1 END IF (BX+3 >= X+8) AND (BX+3 < X+12) THEN DX = 1 END IF (BX+3 >= X+12) AND (BX+3 < X+16) THEN DX = 2 END END END ' PINTEM SPRITES PUTSPRITE 0 BX BY PUTSPRITE 1 X 96 PUTSPRITE 2 X+8 96 UPDATESCR GOTO MAIN_GAME LOOP: GOTO LOOP MOVE_LEFT: IF X > 8 THEN X = X - 3 END RETURN MOVE_RIGHT: IF X < 120 THEN X = X + 3 END RETURN LIVE_LOST: GOSUB POINT DEC LIVES COLOR INK_YELLOW + PAPER_BLACK LOCATE 11 0 FOR I = 0 TO LIVES PRINT CHR &HE1 END COLOR INK_RED + PAPER_BLACK PRINT CHR &HEE UPDATESCR DELAY = 0 WAIT1: INC DELAY UPDATESCR IF DELAY < 20 THEN GOTO WAIT1 END COLOR INK_YELLOW + PAPER_BLACK LOCATE 11 0 FOR I = 0 TO LIVES PRINT CHR &HE1 END PRINT " " UPDATESCR WAIT2: INC DELAY UPDATESCR IF DELAY < 100 THEN GOTO WAIT2 END COLOR INK_YELLOW + PAPER_BLACK LOCATE 11 0 FOR I = 0 TO LIVES PRINT CHR &HE0 END DX = 1 DY = 1 BX = 64 BY = 48 X = 64 RETURN PING1: SETMUSIC 0 "L1O7C" PLAYMUSIC RETURN PING2: SETMUSIC 0 "L1O6C" PLAYMUSIC RETURN PING3: SETMUSIC 0 "L1O5C" PLAYMUSIC RETURN POINT: SETMUSIC 0 "L2O2BEC" PLAYMUSIC RETURN JUMP_LINE: MOVE -2 1 RETURN DRAW_0: PRINT !8785 GOSUB JUMP_LINE PRINT !8585 GOSUB JUMP_LINE PRINT !8381 RETURN DRAW_1: PRINT !8085 GOSUB JUMP_LINE PRINT !8085 GOSUB JUMP_LINE PRINT !8081 RETURN DRAW_2: PRINT !8385 GOSUB JUMP_LINE PRINT !8781 GOSUB JUMP_LINE PRINT !8381 RETURN DRAW_3: PRINT !8385 GOSUB JUMP_LINE PRINT !8385 GOSUB JUMP_LINE PRINT !8381 RETURN DRAW_4: PRINT !8585 GOSUB JUMP_LINE PRINT !8385 GOSUB JUMP_LINE PRINT !8081 RETURN DRAW_5: PRINT !8781 GOSUB JUMP_LINE PRINT !8385 GOSUB JUMP_LINE PRINT !8381 RETURN DRAW_6: PRINT !8781 GOSUB JUMP_LINE PRINT !8785 GOSUB JUMP_LINE PRINT !8381 RETURN DRAW_7: PRINT !8385 GOSUB JUMP_LINE PRINT !8085 GOSUB JUMP_LINE PRINT !8081 RETURN DRAW_8: PRINT !8785 GOSUB JUMP_LINE PRINT !8785 GOSUB JUMP_LINE PRINT !8381 RETURN DRAW_9: PRINT !8785 GOSUB JUMP_LINE PRINT !8385 GOSUB JUMP_LINE PRINT !8081 RETURN