Working on Breakout
This commit is contained in:
72
test.bas
72
test.bas
@@ -1,6 +1,6 @@
|
||||
SETMUSIC 0 "L5CCCFRF>L6C." PLAYMUSIC
|
||||
'SETMUSIC 0 "L5CCCFRF>L6C." PLAYMUSIC
|
||||
START:
|
||||
BORDER INK_GRAY
|
||||
BORDER INK_BLACK
|
||||
COLOR INK_RED + PAPER_BLACK
|
||||
CLS
|
||||
LOCATE 0 1 PRINT !8A87858A87858A8783888F8D8A858E81
|
||||
@@ -28,6 +28,9 @@ MENU_BLINK2:
|
||||
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
|
||||
@@ -43,6 +46,11 @@ INIT_GAME:
|
||||
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
|
||||
@@ -50,15 +58,17 @@ MAIN_GAME:
|
||||
|
||||
' MOVIMENT DE LA BOLA
|
||||
BX = BX + DX
|
||||
IF BX >= 131 THEN BX = 131 DX = -DX END
|
||||
IF BX <= 5 THEN BX = 5 DX = -DX END
|
||||
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 >= 99 THEN BY = 99 DY = -DY END
|
||||
IF BY <= 5 THEN BY = 5 DY = -DY END
|
||||
TX = (BX-5)/8
|
||||
TY = (BY-5)/8
|
||||
CHAR = GETCHAR TX TY
|
||||
IF NOT(CHAR = 32) THEN
|
||||
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
|
||||
@@ -66,11 +76,19 @@ MAIN_GAME:
|
||||
PUTCHAR TX-1 TY 32
|
||||
END
|
||||
DY = -DY
|
||||
IF (GETCOLOR TX TY) = INK_GREEN + PAPER_BLACK THEN DY = 2 DX = 2 END
|
||||
'IF GETCOLOR TX TY = INK_YELLOW + PAPER_BLACK THEN DY = 3 DX = 3 END
|
||||
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
|
||||
@@ -78,9 +96,37 @@ MAIN_GAME:
|
||||
UPDATESCR
|
||||
GOTO MAIN_GAME
|
||||
LOOP: GOTO LOOP
|
||||
MOVE_LEFT: IF X > 8 THEN X = X - 4 END RETURN
|
||||
MOVE_RIGHT: IF X < 120 THEN X = X + 4 END RETURN
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user