129 lines
2.9 KiB
QBasic
129 lines
2.9 KiB
QBasic
'SETMUSIC 0 "O6L2BAGFEDC" PLAYMUSIC ' PLAYER SHOOT
|
|
'SETMUSIC 0 "O4L2BAGFEDC" PLAYMUSIC ' INVADER SHOOT
|
|
'SETMUSIC 0 "O4L3C<BAGFEDCDEFGAB>C<BAGFEDCDEFGAB>C" PLAYMUSIC ' BIG UFO
|
|
'SETMUSIC 3 "O5L2BAGFEDCV4BAGFEDV2CBAGFEDC" PLAYMUSIC ' EXPLOSION
|
|
SETCHAR 0 !00000101033F7F7F
|
|
SETCHAR 1 !0000000080F8FCFC
|
|
SETCHAR 2 !00423C5ABDA51800
|
|
SETCHAR 3 !0024BD5A3C244200
|
|
SETCHAR 4 !00817E99FF3C4200
|
|
SETCHAR 5 !00247E99FF3C1800
|
|
SETCHAR 6 !00183C5ADB7E2400
|
|
SETCHAR 7 !00183C5ADB7EDB00
|
|
SETCHAR 8 !00031F7F45FF3100
|
|
SETCHAR 9 !00C0F8FE92FF8C00
|
|
SETCHAR 10 !0925975F3FCF1200
|
|
SETCHAR 11 !2048D2F4F8E69000
|
|
SETCHAR 12 !1F3F7FFFFFFFFEFC
|
|
SETCHAR 13 !F8FCFEFFFFFF7F3F
|
|
SETCHAR 14 !013373FFFFFFFEFC
|
|
SETCHAR 15 !B89CD8FFFFFF7F3F
|
|
SETCHAR 16 !000042C2C7EFFEFC
|
|
SETCHAR 17 !0080C0D9DFFF7F3F
|
|
SETCHAR 18 !00000000008ADEFC
|
|
SETCHAR 19 !00000080C0D27733
|
|
SETCHAR 20 !FF00000000000000
|
|
SETCHAR 21 !00000000000000FF
|
|
|
|
BORDER INK_BLACK
|
|
COLOR INK_WHITE + PAPER_BLACK
|
|
CLS
|
|
|
|
' PINTEM EL MARCADOR
|
|
LOCATE 1 0 PRINT "0000"
|
|
COLOR INK_GRAY + PAPER_BLACK
|
|
LOCATE 0 1 PRINT !14141414141414141414141414141414
|
|
LOCATE 0 11 PRINT !15151515151515151515151515151515
|
|
COLOR INK_YELLOW + PAPER_BLACK
|
|
LOCATE 13 0 PRINT !E0E0E0
|
|
|
|
LET ITER = 0
|
|
LET HEIGHT = 0
|
|
LET ALIEN = 0
|
|
LET AX = 8
|
|
LET AY = 18
|
|
DIM A(3)
|
|
A(0) = &HFF
|
|
A(1) = &HFF
|
|
A(2) = &HFF
|
|
LET POS = 0
|
|
LET MASK = 1
|
|
|
|
'PINTEM ELS MARSIANITOS
|
|
FOR I = 0 TO 24
|
|
IF I < 6 THEN SETSPRITE I 4 INK_MAGENTA END
|
|
IF (I >= 6) AND (I < 12) THEN SETSPRITE I 2 INK_LIME END
|
|
IF (I >= 12) AND (I < 18) THEN SETSPRITE I 2 INK_LIME END
|
|
IF I >= 18 THEN SETSPRITE I 6 INK_CYAN END
|
|
PUTSPRITE I AX AY
|
|
AX = AX + 16
|
|
IF AX = 104 THEN
|
|
AX = 8
|
|
AY = AY + 10
|
|
END
|
|
END
|
|
|
|
' PINTEM AL JUGADOR
|
|
LET X = 32
|
|
SETSPRITE 24 0 INK_CYAN
|
|
SETSPRITE 25 1 INK_CYAN
|
|
PUTSPRITE 24 X 95
|
|
PUTSPRITE 25 X+8 95
|
|
|
|
' PINTEM LES BARRERES
|
|
COLOR INK_RED + PAPER_BLACK
|
|
LOCATE 1 10 PRINT !0C0D20200C0D20200C0D20200C0D20
|
|
UPDATESCR
|
|
|
|
MAIN_GAME:
|
|
' MOVEM AL JUGADOR
|
|
IF KEYPRESSED BTN_RIGHT THEN
|
|
INC X
|
|
IF X > 122 THEN X = 122 END
|
|
GOSUB DRAW_PLAYER
|
|
END
|
|
IF KEYPRESSED BTN_LEFT THEN
|
|
DEC X
|
|
IF X < 7 THEN X = 7 END
|
|
GOSUB DRAW_PLAYER
|
|
END
|
|
|
|
'MOVEM ALS MARSIANITOS
|
|
LET AX = 8 + ITER
|
|
LET AY = 18 + HEIGHT * 4
|
|
LET POS = 0
|
|
LET MASK = 1
|
|
FOR I = 0 TO 24
|
|
IF I = ALIEN THEN
|
|
INC ALIEN
|
|
IF ALIEN = 24 THEN
|
|
ALIEN = 0
|
|
IF (HEIGHT MOD 2) = 0 THEN INC ITER ELSE DEC ITER END
|
|
IF (ITER = 40) OR (ITER = 0) THEN INC HEIGHT END
|
|
END
|
|
IF (A(POS) AND MASK) = MASK THEN
|
|
PUTSPRITE I AX AY
|
|
GOTO ALIEN_FOUND
|
|
END
|
|
END
|
|
MASK = MASK * 2
|
|
IF MASK = 0 THEN
|
|
MASK = 1
|
|
INC POS
|
|
IF POS = 3 THEN POS = 0 END
|
|
END
|
|
AX = AX + 16
|
|
IF AX = 104 + ITER THEN
|
|
AX = 8 + ITER
|
|
AY = AY + 10
|
|
END
|
|
END
|
|
ALIEN_FOUND:
|
|
UPDATESCR
|
|
GOTO MAIN_GAME
|
|
DRAW_PLAYER:
|
|
PUTSPRITE 24 X 95
|
|
PUTSPRITE 25 X+8 95
|
|
RETURN
|
|
LOOP: GOTO LOOP
|
|
|