'====================================================================
'========================= TANKS6 HEADER ============================
'====================================================================
'= TANKS6 (2016)
'=
'= ENGINE v7.0.1
'=
'= AUDIO INFO:
'= SOUND-ENGINE v2.0
'= JUKEBOX v2.0
'=
'= CREATED WITH QB64 AND COMPILED
'=
'====================================================================
'====================================================================
VERBOSE = 0
PLAYER1.COLORR = 255
PLAYER2.COLORR = 150
PLAYER2.COLORB = 200
IF PLAYER1.WINS
> PLAYER2.WINS
THEN IF PLAYER1.WINS
= 0 OR PLAYER2.WINS
= 0 THEN CALL SOUNDBOARD
("HUMILIATION", 0)
GAMEOVER = 0
PROJECTILES = 1
PLAYERTURN = 1
ROUND = 1
PLAYER1.WINS = 0
PLAYER2.WINS = 0
PRINT "USE THIS STAGE (Y/N)?" PLAYER1.HEALTH = 10
PLAYER2.HEALTH = 10
PLAYERTURN = 2
PLAYERTURN = 1
PROJECTILE(1).WEAPON = 99
CALL EXPLOSION
(PLAYER2.POSX
, PLAYER2.POSY
) PLAYER1.WINS = PLAYER1.WINS + 1
PROJECTILE(1).WEAPON = 99
CALL EXPLOSION
(PLAYER1.POSX
, PLAYER1.POSY
) PLAYER2.WINS = PLAYER2.WINS + 1
ROUND = ROUND + 1
GAMEOVER = 1
PLAYERTURN = 1
PLAYER1.OLDY = 0
PLAYER2.OLDY = 0
PLAYER1.SHIELD = 0
PLAYER2.SHIELD = 0
PLAYER1.CASH = PLAYER1.CASH + 100
PLAYER2.CASH = PLAYER2.CASH + 100
IF PLAYERTURN
= 3 THEN PLAYER1.CASH
= INT(PLAYER1.CASH
* INTEREST
) IF PLAYERTURN
= 4 THEN PLAYER2.CASH
= INT(PLAYER2.CASH
* INTEREST
)
LINE (PLAYER1.POSX
, PLAYER1.POSY
)-(PLAYER1.POSX
+ 100, PLAYER1.POSY
- 100), _RGB(0, 0, 0), BF
LINE (PLAYER1.POSX
, PLAYER1.POSY
)-(PLAYER1.POSX
+ 100, PLAYER1.POSY
- 100), _RGB(0, 0, 0), BF
LINE (PLAYER2.POSX
, PLAYER2.POSY
)-(PLAYER2.POSX
- 100, PLAYER2.POSY
- 100), _RGB(0, 0, 0), BF
LINE (PLAYER2.POSX
, PLAYER2.POSY
)-(PLAYER2.POSX
- 100, PLAYER2.POSY
- 100), _RGB(0, 0, 0), BF
WIND = WIND - 1
WIND = WIND * 10
IF WDIRECTION
= 2 THEN WIND
= WIND
- (WIND
* 2)
IF PLAYER1.SHIELD
> 0 OR PLAYER2.SHIELD
> 0 THEN
FOR R
= 1 TO INT((PLAYER1.SHIELD
/ 10) + 2) CIRCLE (PLAYER1.POSX
+ 5, PLAYER1.POSY
+ 2), R
+ 30, _RGB(255, 255, 255) CIRCLE (PLAYER1.POSX
+ 5, PLAYER1.POSY
+ 2), R
, _RGB(0, 0, 0)
CIRCLE (PLAYER2.POSX
+ 5, PLAYER2.POSY
+ 2), R
+ 30, _RGB(254, 254, 255) CIRCLE (PLAYER2.POSX
+ 5, PLAYER2.POSY
+ 2), R
, _RGB(0, 0, 0)
SUB BUYSCREEN
(SCREENSELECT
) PRINT "MATCHES LEFT:"; ROUNDS
- ROUND
+ 1 PRINT "1 - HEAVY SHELL 5 FOR $300, YOU HAVE -"; PLAYER1WEAP
(1) PRINT "2 - BUNKER BUSTER 5 FOR $600, YOU HAVE -"; PLAYER1WEAP
(2) PRINT "3 - CARPET BOMB 5 FOR $800, YOU HAVE -"; PLAYER1WEAP
(3) PRINT "4 - HEAVY CARPET BOMB 5 FOR $1000, YOU HAVE -"; PLAYER1WEAP
(4) PRINT "5 - NUKE 5 FOR $1500, YOU HAVE -"; PLAYER1WEAP
(5) PRINT "6 - DIRT PILE 5 FOR $800, YOU HAVE -"; PLAYER1WEAP
(6) PRINT "7 - MIRV 5 FOR $1500, YOU HAVE -"; PLAYER1WEAP
(7) PRINT "8 - DIRT MELTER 5 FOR $300, YOU HAVE -"; PLAYER1WEAP
(8) PRINT "9 - SHIELD 1 FOR $1000, YOU HAVE -"; PLAYER1WEAP
(9) PRINT "YOU HAVE:"; PLAYER1.CASH
PRINT "MATCHES LEFT:"; ROUNDS
- ROUND
+ 1 PRINT "1 - HEAVY SHELL 5 FOR $300, YOU HAVE -"; PLAYER2WEAP
(1) PRINT "2 - BUNKER BUSTER 5 FOR $600, YOU HAVE -"; PLAYER2WEAP
(2) PRINT "3 - CARPET BOMB 5 FOR $800, YOU HAVE -"; PLAYER2WEAP
(3) PRINT "4 - HEAVY CARPET BOMB 5 FOR $1000, YOU HAVE -"; PLAYER2WEAP
(4) PRINT "5 - NUKE 5 FOR $1500, YOU HAVE -"; PLAYER2WEAP
(5) PRINT "6 - DIRT PILE 5 FOR $800, YOU HAVE -"; PLAYER2WEAP
(6) PRINT "7 - MIRV 5 FOR $1500, YOU HAVE -"; PLAYER2WEAP
(7) PRINT "8 - DIRT MELTER 5 FOR $300, YOU HAVE -"; PLAYER2WEAP
(8) PRINT "9 - SHIELD 1 FOR $1000, YOU HAVE -"; PLAYER2WEAP
(9) PRINT "YOU HAVE:"; PLAYER2.CASH
CALL SOUNDBOARD
("EXITBUY", 0) IF I$
= "1" AND PLAYER1.CASH
>= 300 THEN PLAYER1.CASH
= PLAYER1.CASH
- 300: PLAYER1WEAP
(1) = PLAYER1WEAP
(1) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "2" AND PLAYER1.CASH
>= 600 THEN PLAYER1.CASH
= PLAYER1.CASH
- 600: PLAYER1WEAP
(2) = PLAYER1WEAP
(2) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "3" AND PLAYER1.CASH
>= 800 THEN PLAYER1.CASH
= PLAYER1.CASH
- 800: PLAYER1WEAP
(3) = PLAYER1WEAP
(3) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "4" AND PLAYER1.CASH
>= 1000 THEN PLAYER1.CASH
= PLAYER1.CASH
- 1000: PLAYER1WEAP
(4) = PLAYER1WEAP
(4) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "5" AND PLAYER1.CASH
>= 1500 THEN PLAYER1.CASH
= PLAYER1.CASH
- 1500: PLAYER1WEAP
(5) = PLAYER1WEAP
(5) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "6" AND PLAYER1.CASH
>= 800 THEN PLAYER1.CASH
= PLAYER1.CASH
- 800: PLAYER1WEAP
(6) = PLAYER1WEAP
(6) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "7" AND PLAYER1.CASH
>= 500 THEN PLAYER1.CASH
= PLAYER1.CASH
- 1500: PLAYER1WEAP
(7) = PLAYER1WEAP
(7) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "8" AND PLAYER1.CASH
>= 300 THEN PLAYER1.CASH
= PLAYER1.CASH
- 300: PLAYER1WEAP
(8) = PLAYER1WEAP
(8) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "9" AND PLAYER1.CASH
>= 1000 THEN PLAYER1.CASH
= PLAYER1.CASH
- 1000: PLAYER1WEAP
(9) = PLAYER1WEAP
(9) + 1:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "X" THEN GAMEOVER
= 1: I$
= "0" IF I$
= "1" AND PLAYER2.CASH
>= 300 THEN PLAYER2.CASH
= PLAYER2.CASH
- 300: PLAYER2WEAP
(1) = PLAYER2WEAP
(1) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "2" AND PLAYER2.CASH
>= 600 THEN PLAYER2.CASH
= PLAYER2.CASH
- 600: PLAYER2WEAP
(2) = PLAYER2WEAP
(2) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "3" AND PLAYER2.CASH
>= 800 THEN PLAYER2.CASH
= PLAYER2.CASH
- 800: PLAYER2WEAP
(3) = PLAYER2WEAP
(3) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "4" AND PLAYER2.CASH
>= 1000 THEN PLAYER2.CASH
= PLAYER2.CASH
- 1000: PLAYER2WEAP
(4) = PLAYER2WEAP
(4) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "5" AND PLAYER2.CASH
>= 1500 THEN PLAYER2.CASH
= PLAYER2.CASH
- 1500: PLAYER2WEAP
(5) = PLAYER2WEAP
(5) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "6" AND PLAYER2.CASH
>= 800 THEN PLAYER2.CASH
= PLAYER2.CASH
- 800: PLAYER2WEAP
(6) = PLAYER2WEAP
(6) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "7" AND PLAYER2.CASH
>= 500 THEN PLAYER2.CASH
= PLAYER2.CASH
- 1500: PLAYER2WEAP
(7) = PLAYER2WEAP
(7) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "8" AND PLAYER2.CASH
>= 300 THEN PLAYER2.CASH
= PLAYER2.CASH
- 300: PLAYER2WEAP
(8) = PLAYER2WEAP
(8) + 5:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "9" AND PLAYER2.CASH
>= 1000 THEN PLAYER2.CASH
= PLAYER2.CASH
- 1000: PLAYER2WEAP
(9) = PLAYER2WEAP
(9) + 1:
CALL SOUNDBOARD
("BUY", 0) IF I$
= "X" THEN GAMEOVER
= 1: I$
= "0"
WEPDIS = 0
LOOPCONTROL$ = "LOOP"
PRINT "PLAYER"; PLAYERTURN;
"ENTER ANGLE:";:
INPUT "", PROJECTILE
(1).ANGLE
PRINT "PLAYER"; PLAYERTURN;
"ENTER VELOCITY:";:
INPUT "", PROJECTILE
(1).VELOCITY
PRINT "WEAPON (1 - 9): NORMAL SHELL - UL" IF PROJECTILE
(1).ANGLE
> 90 THEN PROJECTILE
(1).ANGLE
= 90
WEPDIS$ = "NORMAL SHELL"
WEPDIS$ = "HEAVY SHELL"
WEPDIS$ = "BUNKER BUSTER"
WEPDIS$ = "CARPET BOMB"
WEPDIS$ = "HEAVY CARPET BOMB"
WEPDIS$ = "NUKE"
WEPDIS$ = "DIRT PILE"
WEPDIS$ = "MIRV"
WEPDIS$ = "DIRT MELTER"
WEPDIS$ = "SHIELD"
PRINT " WEAPON (= / -): "; WEPDIS$;
" -"; PLAYER1WEAP
(WEPDIS
) PRINT " WEAPON (= / -): "; WEPDIS$;
" -"; PLAYER2WEAP
(WEPDIS
) PRINT " WEAPON (= / -): "; WEPDIS$;
" - UL"
IF PLAYERTURN
= 1 AND PLAYER1WEAP
(WEPDIS
) > 0 THEN PLAYER1WEAP(WEPDIS) = PLAYER1WEAP(WEPDIS) - 1
LOOPCONTROL$ = "EXIT"
PROJECTILE(1).WEAPON = WEPDIS
PLAYER2WEAP(WEPDIS) = PLAYER2WEAP(WEPDIS) - 1
LOOPCONTROL$ = "EXIT"
PROJECTILE(1).WEAPON = WEPDIS
PROJECTILE(1).WEAPON = WEPDIS
LOOPCONTROL$ = "EXIT"
PROJECTILE(1).POSX = PLAYER1.POSX
PROJECTILE(1).POSY = PLAYER1.POSY
PROJECTILE(1).POSX = PLAYER2.POSX
PROJECTILE(1).POSY = PLAYER2.POSY
PROJECTILE(1).ACTIVE = 1
PROJECTILES = 1
PLAYER1.POSX
= INT(RND * (REZX
* .4)) + 1 PLAYER2.POSX
= INT(RND * (REZX
* .4)) + (REZX
* .5)
PLAYER1.POSY = FINDLAND(PLAYER1.POSX + 5, PLAYER1.OLDY)
PLAYER2.POSY = FINDLAND(PLAYER2.POSX + 5, PLAYER2.OLDY)
PLAYER1.OLDY = PLAYER1.POSY
ELSEIF PLAYER1.POSY
- PLAYER1.OLDY
> PLAYER1.HEALTH
THEN PLAYERTURN = 4
PLAYER2.OLDY = PLAYER2.POSY
ELSEIF PLAYER2.POSY
- PLAYER2.OLDY
> PLAYER2.HEALTH
THEN PLAYERTURN = 3
FOR DROPS
= 1 TO PROJECTILES
SOILX
= INT(PROJECTILE
(DROPS
).POSX
) SOILY
= INT(PROJECTILE
(DROPS
).POSY
) RANGE = EXPLOSIONR
IF PROJECTILE
(1).WEAPON
= 3 OR PROJECTILE
(1).WEAPON
= 4 THEN SOILX = SOILX + (EXPLOSIONR * 1.5)
RANGE = RANGE * 2.5
LINE (SOILX
- 1, SOILY
)-(SOILX
+ 1, SOILY
+ 1), _RGB(255, 0, 0), B
LINE (SOILX
- RANGE
- 1, SOILY
)-(SOILX
- RANGE
- 1, 0), _RGB(0, 0, 255) LINE (SOILX
+ RANGE
+ 1, SOILY
)-(SOILX
+ RANGE
+ 1, 0), _RGB(0, 0, 255) LINE (0, HIGHPOINT
)-(REZX
, HIGHPOINT
), _RGB(0, 255, 0) LINE (0, SOILY
+ EXPLOSIONR
+ 2)-(REZX
, SOILY
+ EXPLOSIONR
+ 2), _RGB(0, 255, 0)
FOR DROPX
= SOILX
- RANGE
- 1 TO SOILX
+ RANGE
+ 1 DROPSWITCH = 0
FOR DROPY
= SOILY
+ EXPLOSIONR
+ 2 TO HIGHPOINT
STEP -1
STARTY = DROPY
IF POINT(DROPX
, DROPY
) = _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
) AND DROPSWITCH
= 1 THEN DROPSWITCH
= 2
PIXELS = PIXELS + 1
DROPMEM&
(PIXELS
) = POINT(DROPX
, DROPY
)
DROPSWITCH = 3
ENDY = DROPY
DROPSWITCH = 0
DRAWN = DRAWN + 1
LINE (DROPX
, DRAWY
)-(DROPX
, DRAWY
), _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
) LINE (DROPX
, DRAWY
)-(DROPX
, DRAWY
), _RGB(0, 0, 0) LINE (DROPX
, DRAWY
)-(DROPX
, DRAWY
), _RGB(0, 0, 0) PIXELS = 0
DRAWN = 0
IF PROJECTILE
(1).WEAPON
= 9 THEN PLAYER1.SHIELD = 100
CALL SOUNDBOARD
("SHIELD", 0) PLAYER2.SHIELD = 100
CALL SOUNDBOARD
("SHIELD", 0)
IF PROJECTILE
(1).WEAPON
= 8 THEN CALL MELTDIRT
(PLAYERTURN
)
PROJECTILE(1).XMOD = ((90 - PROJECTILE(1).ANGLE) * PROJECTILE(1).VELOCITY) / (500)
PROJECTILE(1).YMOD = ((PROJECTILE(1).ANGLE * PROJECTILE(1).VELOCITY) * -1) / (500)
PROJECTILE(1).XMOD = PROJECTILE(1).XMOD * -1
CALL SOUNDBOARD
("SHOOT", 0)
IF PROJECTILE
(2).ACTIVE
= 2 THEN CALL EXPLOSION
(PROJECTILE
(2).POSX
, PROJECTILE
(2).POSY
): PROJECTILE
(2).ACTIVE
= 0 IF PROJECTILE
(3).ACTIVE
= 2 THEN CALL EXPLOSION
(PROJECTILE
(3).POSX
, PROJECTILE
(3).POSY
): PROJECTILE
(3).ACTIVE
= 0 IF PROJECTILE
(4).ACTIVE
= 2 THEN CALL EXPLOSION
(PROJECTILE
(4).POSX
, PROJECTILE
(4).POSY
): PROJECTILE
(4).ACTIVE
= 0 IF PROJECTILE
(2).ACTIVE
= 0 AND PROJECTILE
(3).ACTIVE
= 0 AND PROJECTILE
(4).ACTIVE
= 0 THEN MIRVACTIVE
= 0
IF PROJECTILE
(1).ACTIVE
= 2 THEN CALL EXPLOSION
(PROJECTILE
(1).POSX
, PROJECTILE
(1).POSY
) IF PROJECTILE
(1).WEAPON
= 3 OR PROJECTILE
(1).WEAPON
= 4 THEN EXPLCOUNT = 0
TEMPPOSX = PROJECTILE(1).POSX
EXPLCOUNT = EXPLCOUNT + 1
IF PLAYERTURN
= 1 THEN PROJECTILE
(1).POSX
= PROJECTILE
(1).POSX
+ EXPLOSIONR
IF PLAYERTURN
= 2 THEN PROJECTILE
(1).POSX
= PROJECTILE
(1).POSX
- EXPLOSIONR
CALL EXPLOSION
(PROJECTILE
(1).POSX
, PROJECTILE
(1).POSY
) PROJECTILE(1).POSX = TEMPPOSX
IF PROJECTILE
(PN
).ACTIVE
= 1 THEN
OLDX = PROJECTILE(PN).POSX
OLDY = PROJECTILE(PN).POSY
PROJECTILE(PN).XMOD = PROJECTILE(PN).XMOD + (WIND / 5000)
PROJECTILE(PN).POSX = PROJECTILE(PN).POSX + PROJECTILE(PN).XMOD
PROJECTILE(PN).YMOD = PROJECTILE(PN).YMOD + GRAVITY
PROJECTILE(PN).POSY = PROJECTILE(PN).POSY + PROJECTILE(PN).YMOD
IF PROJECTILE
(1).WEAPON
= 7 AND OLDY
< PROJECTILE
(1).POSY
AND MIRVACTIVE
= 0 THEN MIRVACTIVE = 1
PROJECTILES = 4
CALL SOUNDBOARD
("MIRV", 0) PROJECTILE(TMP).POSX = PROJECTILE(1).POSX
PROJECTILE(TMP).POSY = PROJECTILE(1).POSY
PROJECTILE(TMP).VELOCITY = PROJECTILE(1).VELOCITY
PROJECTILE(TMP).ANGLE = PROJECTILE(1).ANGLE
PROJECTILE(TMP).OLDCOL = PROJECTILE(1).OLDCOL
PROJECTILE(TMP).WEAPON = 1
PROJECTILE(TMP).ACTIVE = 1
PROJECTILE(TMP).XMOD = PROJECTILE(1).XMOD + (TMP * .5)
PROJECTILE(TMP).YMOD = PROJECTILE(1).YMOD
PROJECTILE(1).WEAPON = 1
IF VERBOSE
= 1 THEN CIRCLE (PROJECTILE
(1).POSX
, PROJECTILE
(1).POSY
), 25, _RGB(0, 0, 255) LINE (POSX
, POSY
)-(POSX
+ 1, POSY
+ 1), PROJECTILE
(PN
).OLDCOL
, BF
IF POINT(PROJECTILE
(PN
).POSX
, PROJECTILE
(PN
).POSY
) = _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
) THEN PROJECTILE(PN).ACTIVE = 2
IF PROJECTILE
(PN
).POSX
> PLAYER2.POSX
- 5 AND PROJECTILE
(PN
).POSX
< PLAYER2.POSX
+ 5 AND PROJECTILE
(PN
).POSY
> PLAYER2.POSY
- 30 AND PROJECTILE
(PN
).POSY
< PLAYER2.POSY
AND PLAYERTURN
= 1 THEN CALL SOUNDBOARD
("WHIZZ", 0) IF PROJECTILE
(PN
).POSX
> PLAYER1.POSX
- 5 AND PROJECTILE
(PN
).POSX
< PLAYER1.POSX
+ 5 AND PROJECTILE
(PN
).POSY
> PLAYER1.POSY
- 30 AND PROJECTILE
(PN
).POSY
< PLAYER1.POSY
AND PLAYERTURN
= 2 THEN CALL SOUNDBOARD
("WHIZZ", 0)
IF POINT(PROJECTILE
(PN
).POSX
, PROJECTILE
(PN
).POSY
) = _RGB(255, 255, 255) AND PLAYERTURN
= 2 THEN PLAYERTURN
= 5: PROJECTILE
(PN
).ACTIVE
= 2 IF POINT(PROJECTILE
(PN
).POSX
, PROJECTILE
(PN
).POSY
) = _RGB(254, 254, 255) AND PLAYERTURN
= 1 THEN PLAYERTURN
= 6: PROJECTILE
(PN
).ACTIVE
= 2 LINE (OLDX
, OLDY
)-(OLDX
+ 1, OLDY
+ 1), PROJECTILE
(PN
).OLDCOL
, BF
PROJECTILE
(PN
).OLDCOL
= POINT(PROJECTILE
(PN
).POSX
, PROJECTILE
(PN
).POSY
) LINE (PROJECTILE
(PN
).POSX
, PROJECTILE
(PN
).POSY
)-(PROJECTILE
(PN
).POSX
+ 1, PROJECTILE
(PN
).POSY
+ 1), _RGB(255, 155, 55), BF
IF PROJECTILE
(PN
).POSX
> (REZX
+ 2) THEN PROJECTILE
(PN
).ACTIVE
= 0 IF PROJECTILE
(PN
).POSX
< -2 THEN PROJECTILE(PN).ACTIVE = 0
GRAVITY = .0002 * (10 ^ 2)
INTEREST = 1.06
REZX = 1920
REZY = 1080
LAND.TOPG = 80
SUB EXPLOSION
(EXPLX
, EXPLY
) IF PROJECTILE
(1).WEAPON
= 0 OR PROJECTILE
(1).WEAPON
= 3 THEN EXPLOSIONR
= 25 IF PROJECTILE
(1).WEAPON
= 1 OR PROJECTILE
(1).WEAPON
= 4 OR PROJECTILE
(1).WEAPON
= 7 THEN EXPLOSIONR
= 35 IF PROJECTILE
(1).WEAPON
= 2 THEN EXPLOSIONR
= 50 IF PROJECTILE
(1).WEAPON
= 5 OR PROJECTILE
(1).WEAPON
= 99 THEN EXPLOSIONR
= 100
PLAYER1.SHIELD = PLAYER1.SHIELD - EXPLOSIONR
CALL SOUNDBOARD
("EXPL", 0) PLAYERTURN = 2
PLAYER2.SHIELD = PLAYER2.SHIELD - EXPLOSIONR
CALL SOUNDBOARD
("EXPL", 0) PLAYERTURN = 1
IF PROJECTILE
(1).WEAPON
= 6 THEN EXPLOSIONR = 0
PAINT (EXPLX
, EXPLY
), _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
), _RGB(255, 0, 0) CIRCLE (EXPLX
, EXPLY
), 75, _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
)
PAINT (EXPLX
, EXPLY
), _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
), _RGB(255, 0, 0) CIRCLE (EXPLX
, EXPLY
), 75, _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
)
CIRCLE (EXPLX
, EXPLY
), EXPLOSIONR
, _RGB(255, 255, 255)
CIRCLE (EXPLX
, EXPLY
), EXPLOSIONR
, _RGB(255, 255, 255)
FOR RAD
= 3 TO EXPLOSIONR
CIRCLE (EXPLX
, EXPLY
), RAD
- 1, _RGB(255, 255, 255) CIRCLE (EXPLX
, EXPLY
), RAD
- 2, _RGB(255, 255, 255)
IF PROJECTILE
(1).WEAPON
= 5 THEN FOR RAD
= 1 TO EXPLOSIONR
FOR RAD
= 1 TO EXPLOSIONR
CALL SOUNDBOARD
("EXPL", 0)
H
= INT(RND * REZY
* .75) + 100 HIGHPOINT = H
V
= V
+ ((RND * .5) - .25) H = H + V
IF H
< REZY
* .15 THEN V
= V
+ .25 IF H
> REZY
* .65 THEN V
= V
- .25 IF HIGHPOINT
> H
THEN HIGHPOINT
= H
LINE (I
, H
)-(I
, H
+ V
), _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
)
LINE (I
, H
)-(I
, H
+ V
), _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
) LINE (I
, H
+ 30)-(I
, H
+ V
+ 30), _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
)
HIGHPOINT = HIGHPOINT - 1
PAINT (REZX
- 1, REZY
- 1), _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
), _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
) PAINT (I
- 2, H
+ 2), _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
), _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
) PAINT (1, 1), _RGB(0, 0, 0), _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
)
PAINT (I
- 2, H
+ 5), _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
), _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
) PAINT (1, 1), _RGB(0, 0, 0), _RGB(LAND.TOPR
, LAND.TOPG
, LAND.TOPB
)
FINDLAND = Y - 7
PRINT " TANKS6 ENGINE INIT... "
IF RUNMODE$
= "SOUNDBOARD" THEN PRINT "TANKS 6 SOUNDBOARD" INPUT "ENTER SOUNDBOARD COMMAND: ", SNDCON$
CALL SOUNDBOARD
(SNDCON$
, 0) RUNMODE$ = "NORMAL"
PRINT "SETTING UP FOR FIRST TIME USE, PLEASE WAIT..."
DELAYTIME = DELAYTIME + 1
RUNMODE$ = "NORMAL"
SHOOTDIR = 0
PLAYER1.POSX = 10
PLAYER1.POSY = 400
PLAYER2.POSX = 600
PLAYER2.POSY = 400
STARTUP:
XA = 1
X1 = 4: X2 = 7
STARTUP1:
SHELLX = PLAYER1.POSX
LINE (POSX
+ PLAYER1.POSX
, PLAYER1.POSY
)-(POSX
+ PLAYER1.POSX
, PLAYER1.POSY
), 0 POSX = POSX + 1
LINE (POSX
+ PLAYER1.POSX
, PLAYER1.POSY
)-(POSX
+ PLAYER1.POSX
, PLAYER1.POSY
), 15 SHOOTDIR = 1
POSX = PLAYER2.POSX
LINE (POSX
+ PLAYER1.POSX
, PLAYER1.POSY
)-(POSX
+ PLAYER1.POSX
, PLAYER1.POSY
), 0 POSX = POSX - 1
LINE (POSX
+ PLAYER1.POSX
, PLAYER1.POSY
)-(POSX
+ PLAYER1.POSX
, PLAYER1.POSY
), 15 SHOOTDIR = 0
ENDER:
UP:
CALL SOUNDBOARD
("MENU", 0) XA = XA + 1
IF XA
= 2 THEN X1
= 7: X2
= 4: CK
= 2 IF XA
= 1 THEN X2
= 7: X1
= 4: CK
= 1
DWN:
CALL SOUNDBOARD
("MENU", 0) XA = XA - 1
IF XA
= 2 THEN X1
= 7: X2
= 4: CK
= 2 IF XA
= 1 THEN X2
= 7: X1
= 4: CK
= 1
CHECK1:
CALL SOUNDBOARD
("SELECT", 0)
OPTIONS:
XA = 1
X1 = 4: X2 = 7: X3 = 7: X4 = 7: X5 = 7: X6 = 7: X7 = 7: X8 = 7
OPTIONS1:
COLOR 15:
LOCATE 15, 1:
PRINT "NOTE: TO PLAY SINGLE PLAYER NAME PLAYER 2 COMPUTER"
SHELLX = PLAYER1.POSX
LINE (POSX
+ PLAYER1.POSX
, PLAYER1.POSY
)-(POSX
+ PLAYER1.POSX
, PLAYER1.POSY
), 0 POSX = POSX + 1
LINE (POSX
+ PLAYER1.POSX
, PLAYER1.POSY
)-(POSX
+ PLAYER1.POSX
, PLAYER1.POSY
), 15 SHOOTDIR = 1
POSX = PLAYER2.POSX
LINE (POSX
+ PLAYER1.POSX
, PLAYER1.POSY
)-(POSX
+ PLAYER1.POSX
, PLAYER1.POSY
), 0 POSX = POSX - 1
LINE (POSX
+ PLAYER1.POSX
, PLAYER1.POSY
)-(POSX
+ PLAYER1.POSX
, PLAYER1.POSY
), 15 SHOOTDIR = 0
OUP:
CALL SOUNDBOARD
("MENU", 0) XA = XA + 1
IF XA
= 2 THEN X1
= 7: X2
= 4: CK
= 2 IF XA
= 3 THEN X2
= 7: X3
= 4: CK
= 3 IF XA
= 1 THEN X3
= 7: X1
= 4: CK
= 1
ODWN:
CALL SOUNDBOARD
("MENU", 0) XA = XA - 1
IF XA
= 3 THEN X1
= 7: X3
= 4: CK
= 3 IF XA
= 2 THEN X3
= 7: X2
= 4: CK
= 2 IF XA
= 1 THEN X2
= 7: X1
= 4: CK
= 1
OCHECK1:
CALL SOUNDBOARD
("SELECT", 0)
INPUT "ENTER ROUNDS TO PLAY ", ROUNDS
INPUT "PLAYER 1 ENTER YOUR NAME ", PLAYER1.
NAME
INPUT "PLAYER 2 ENTER YOUR NAME ", PLAYER2.
NAME
TOPMENU:
POINTX = 0
POINTY = 0
LINE (0, 15)-(800, 15), 15 LINE (0, 15)-(800, 15), 4 PRINT "SPACEBAR - SELECT"
STARTGAM:
AISPOT = (WIND / 10) + 4
AIARRAY(AISPOT) = 30
PROJECTILE(1).ANGLE = 55
PROJECTILE(1).VELOCITY = AIARRAY(AISPOT)
PROJECTILE(1).WEAPON = 1
AIARRAY(AISPOT) = AIARRAY(AISPOT) - 5
IF PROJECTILE
(1).POSX
> PLAYER1.POSX
THEN AIARRAY
(AISPOT
) = AIARRAY
(AISPOT
) + 2 IF PROJECTILE
(1).POSX
< PLAYER1.POSX
THEN AIARRAY
(AISPOT
) = AIARRAY
(AISPOT
) - 2
SUB SOUNDBOARD
(SELECTOR$
, SUBSOUD
)
IF SELECTOR$
= "BAUGHT" THEN SFX$
= "Sounds\Bo.sfx" IF SELECTOR$
= "BUY" THEN SFX$
= "Sounds\Buy.sfx" IF SELECTOR$
= "SHIELD" THEN SFX$
= "Sounds\Dsc.sfx" IF SELECTOR$
= "EXITBUY" THEN SFX$
= "Sounds\Exitbuy.sfx" IF SELECTOR$
= "EXPL" THEN SFX$
= "Sounds\Expl.mp3" IF SELECTOR$
= "EDR" THEN SFX$
= "sounds\EDR.sfx" 'NOT USED IF SELECTOR$
= "MENU" THEN SFX$
= "Sounds\Menu.sfx" IF SELECTOR$
= "MIRV" THEN SFX$
= "Sounds\Mirv.mp3" IF SELECTOR$
= "SECRET" THEN SFX$
= "sounds\SECRET.sfx" 'NOT USED IF SELECTOR$
= "SELECT" THEN SFX$
= "Sounds\Select.sfx" IF SELECTOR$
= "SHOOT" THEN SFX$
= "Sounds\Shoot.mp3" IF SELECTOR$
= "SP" THEN SFX$
= "Sounds\SP.sfx" IF SELECTOR$
= "SWICHM" THEN SFX$
= "Sounds\SWICHM.sfx" IF SELECTOR$
= "HUMILIATION" THEN SFX$
= "Sounds\Humiliation.sfx" IF SELECTOR$
= "EXIT" THEN SFX$
= "Sounds\Gamexit.sfx" IF SELECTOR$
= "WHIZZ" THEN SFX$
= "Sounds\whizz.sfx"
PRINT "ERROR WITH FILE:"; SFX$
CALL SOUNDBOARD
("EXIT", 0) PRINT "THIS IS A REMAKE OF A GAME I MADE BACK IN 1997. " PRINT "USING SOME OpenGL CODE AND OpenAL FOR AUDIO. " PRINT "PROGRAMMED AND COMPILED IN QBasic 64-Bit " PRINT "NEXT PROJECT WILL BE A HACKNET MMO " PRINT "EMAIL: Craz1000@yahoo.com " PRINT "WEB: http://Craz1000.net "
'PLAYER 1
LINE (PLAYER1.POSX
, PLAYER1.POSY
)-(PLAYER1.POSX
+ 10, PLAYER1.POSY
+ 10), 0, BF
LINE (PLAYER1.POSX
, PLAYER1.POSY
+ 5)-(PLAYER1.POSX
+ 10, PLAYER1.POSY
+ 7), _RGB(PLAYER1.COLORR
, PLAYER1.COLORG
, PLAYER1.COLORB
), B
LINE (PLAYER1.POSX
+ 1, PLAYER1.POSY
+ 5)-(PLAYER1.POSX
+ 3, PLAYER1.POSY
+ 3), _RGB(PLAYER1.COLORR
, PLAYER1.COLORG
, PLAYER1.COLORB
) LINE (PLAYER1.POSX
+ 3, PLAYER1.POSY
+ 3)-(PLAYER1.POSX
+ 7, PLAYER1.POSY
+ 3), _RGB(PLAYER1.COLORR
, PLAYER1.COLORG
, PLAYER1.COLORB
) LINE (PLAYER1.POSX
+ 7, PLAYER1.POSY
+ 3)-(PLAYER1.POSX
+ 8, PLAYER1.POSY
+ 5), _RGB(PLAYER1.COLORR
, PLAYER1.COLORG
, PLAYER1.COLORB
) LINE (PLAYER1.POSX
+ 10, PLAYER1.POSY
+ 2)-(PLAYER1.POSX
+ 7, PLAYER1.POSY
+ 3), _RGB(PLAYER1.COLORR
, PLAYER1.COLORG
, PLAYER1.COLORB
) PAINT (PLAYER1.POSX
+ 5, PLAYER1.POSY
+ 6), _RGB(PLAYER1.COLORR
, PLAYER1.COLORG
, PLAYER1.COLORB
), _RGB(PLAYER1.COLORR
, PLAYER1.COLORG
, PLAYER1.COLORB
) PAINT (PLAYER1.POSX
+ 5, PLAYER1.POSY
+ 4), _RGB(PLAYER1.COLORR
, PLAYER1.COLORG
, PLAYER1.COLORB
), _RGB(PLAYER1.COLORR
, PLAYER1.COLORG
, PLAYER1.COLORB
)
'PLAYER2
LINE (PLAYER2.POSX
, PLAYER2.POSY
)-(PLAYER2.POSX
+ 10, PLAYER2.POSY
+ 10), 0, BF
LINE (PLAYER2.POSX
, PLAYER2.POSY
+ 5)-(PLAYER2.POSX
+ 10, PLAYER2.POSY
+ 7), _RGB(PLAYER2.COLORR
, PLAYER2.COLORG
, PLAYER2.COLORB
), B
LINE (PLAYER2.POSX
+ 1, PLAYER2.POSY
+ 5)-(PLAYER2.POSX
+ 3, PLAYER2.POSY
+ 3), _RGB(PLAYER2.COLORR
, PLAYER2.COLORG
, PLAYER2.COLORB
) LINE (PLAYER2.POSX
+ 3, PLAYER2.POSY
+ 3)-(PLAYER2.POSX
+ 7, PLAYER2.POSY
+ 3), _RGB(PLAYER2.COLORR
, PLAYER2.COLORG
, PLAYER2.COLORB
) LINE (PLAYER2.POSX
+ 7, PLAYER2.POSY
+ 3)-(PLAYER2.POSX
+ 8, PLAYER2.POSY
+ 5), _RGB(PLAYER2.COLORR
, PLAYER2.COLORG
, PLAYER2.COLORB
) LINE (PLAYER2.POSX
, PLAYER2.POSY
+ 2)-(PLAYER2.POSX
+ 3, PLAYER2.POSY
+ 3), _RGB(PLAYER2.COLORR
, PLAYER2.COLORG
, PLAYER2.COLORB
) PAINT (PLAYER2.POSX
+ 5, PLAYER2.POSY
+ 6), _RGB(PLAYER2.COLORR
, PLAYER2.COLORG
, PLAYER2.COLORB
), _RGB(PLAYER2.COLORR
, PLAYER2.COLORG
, PLAYER2.COLORB
) PAINT (PLAYER2.POSX
+ 5, PLAYER2.POSY
+ 4), _RGB(PLAYER2.COLORR
, PLAYER2.COLORG
, PLAYER2.COLORB
), _RGB(PLAYER2.COLORR
, PLAYER2.COLORG
, PLAYER2.COLORB
)
IF SONG$
= "INTRO" THEN BGM$
= "Music\Intro.mp3"
IF SONG$
= "BUY" THEN BGM$
= "Music\Buy.mp3"
IF TRACK
= 1 THEN BGM$
= "Music\Track-1.mp3" IF TRACK
= 2 THEN BGM$
= "Music\Track-2.mp3" IF TRACK
= 3 THEN BGM$
= "Music\Track-3.mp3" IF TRACK
= 4 THEN BGM$
= "Music\Track-4.mp3" IF TRACK
= 5 THEN BGM$
= "Music\Track-5.mp3" IF TRACK
= 6 THEN BGM$
= "Music\Track-6.mp3" IF TRACK
= 7 THEN BGM$
= "Music\Track-7.mp3"
PRINT "ERROR WITH FILE:"; BGM$
IF SONG$
= "BUY" OR SONG$
= "INTRO" THEN