Stap 2: Gui test.
roids.Bas:
[code]
' ÜÛÛÛÛÜ ÜÛÛÛÛÛÛÜ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÜ ÜÛÛÛÛÛÜ ÛÛ ÛÛÛÛÛÛÜ ÜÛÛÛÛÛÛÜ
' ÛÛ ÛÛ ÛÛß ßßß ÛÛ ÛÛ ÛÛ ßÛÛ ÛÛß ßÛÛ ÛÛ ÛÛ ßÛÛ ÛÛß ßßß
' ÛÛ ÛÛ ßÛÛÜ ÛÛ ÛÛ ÛÛ ÜÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ßÛÛÜ
' ÛÛÛÛÛÛÛÛ ßÛÛÜ ÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛß ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ßÛÛÜ
' ÛÛ ÛÛ ßÛÛÜ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ßÛÛÜ
' ÛÛ ÛÛ ÛÛÜ ÜÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÜ ÜÛÛ ÛÛ ÛÛ ÜÛÛ ÛÛÜ ÜÛÛ
' ÛÛ ÛÛ ßÛÛÛÛß ÛÛ ÛÛÛÛÛÛÛÛÛ ÛÛ ÛÛ ßÛÛÛÛÛß ÛÛ ÛÛÛÛÛÛß ßÛÛÛÛß
'
' Dit is een spel voor één persoon. Het doel is om te schieten de dalende asteroïden en
"ze houden van het raken van het oppervlak. Gebruik de linker en rechter pijltoetsen om te
' Verplaats je pistool en de omhoog-toets om te vuren. De "P"-knop pauzeert het spel, en
' de "Q" knop eindigt het. Wanneer een spel wordt gepauzeerd, hit ruimte om te laten draaien
' weer. Scoren is gebaseerd op het niveau dat je op. Hoe hoger het niveau, de
' meer punten voor hit asteroïden, en de minder punten weggenomen voor gemist
' asteroïden. Terwijl je speelt, ziet u het scherm flikkeren slecht, of
' de actie te snel. Om dit te corrigeren, maken het nummer na Flicker.Control
'(shown below) groter. Als het spel te langzaam gaat, het aantal kleiner maken.
Flicker.Control = 500' Druk nu op "F5" te spelen.
'
'
'
SCHERM 7 "320 X 200 pixels
RANDOMIZE TIMER
verkeer = 0
playagain:
CLS
ZOEK 12, 1
KLEUR 15
INPUT; "Welk niveau wilt u beginnen bij"; niveau
ZOEK 12, 1
PRINT " "
Gun = 165
Missile.x =-5000
Missile.y = 5000
totalhit = 0
mist = 0
totaldropped = 0
newasteroid:
Asteroid.x = 319 * RND + 1
Asteroid.y = 1
totaldropped = totaldropped + 1
a:
KLEUR 0
TERWIJL verkeer = 1
LIJN (gun2 - 20, 170)-(gun2 + 20, 170)
LIJN (gun2, 155)-(gun2 - 20, 170)
LIJN (gun2, 155)-(gun2 + 20, 170)
LIJN (gun2 - 3, 147)-(gun2 + 3, 170), BF
verkeer = 0
WEND
KLEUR 15
LIJN (gun - 20, 170)-(pistool + 20, 170)
LIJN (gun, 155)-(gun - 20, 170)
LIJN (gun, 155)-(pistool + 20, 170)
LIJN (gun - 3, 147)-(pistool + 3, 170), BF
LIJN (asteroid.x - 10, asteroid.y - 6)-(asteroid.x + 10, asteroid.y + 6), 6, BF
CIRKEL (missile.x, missile.y), 3, 12
LIJN (1, 171)-(319, 171), 9
VOOR telling = 1 TO Flicker.Control
VOLGENDE graaf
Asteroid.x2 = asteroid.x
Asteroid.y2 = asteroid.y
Missile.x2 = missile.x
Missile.y2 = missile.y
KLEUR 0
LIJN (asteroid.x2 - 10, asteroid.y2 - 6)-(asteroid.x2 + 10, asteroid.y2 + 6), 0, BF
CIRKEL (missile.x2, missile.y2), 3, 0
ZOEK 23, 1
KLEUR 9
PRINT "Shot:"; totalhit
ZOEK 23, 11
PRINT "niveau:"; niveau
ZOEK 23, 21
PRINT "Score:"; Score
Missile.y = missile.y - 5
IF missile.y < 1 dan
Missile.y = 5000
END IF
Asteroid.y = asteroid.y + niveau *.75
IF asteroid.y > 170 vervolgens
CIRKEL (asteroid.x, asteroid.y), 30, 14
CIRKEL (asteroid.x, asteroid.y), 30, 0
mist = missers + 1
Als mist = 10 THEN
GOTO gameover
END IF
Score = score - INT (10/niveau)
GOTO newasteroid
END IF
Als missile.x - 3 < asteroid.x + 10 en missile.x + 3 > asteroid.x - 10 en missile.y + 3 < asteroid.y + 6 dan
totalhit = totalhit + 1
Als totalhit / 10 = INT(totalhit / 10) dan
niveau = niveau + 1
mist = 0
END IF
Score = score + 10 * niveau
VOOR ctr = 1 tot en met 7
straal = 15 * RND + 5
offset.x = 40 * RND - 20
offset.y = 40 * RND - 20
circlecolor = 16 * RND
CIRKEL (asteroid.x offset.x, asteroid.y + offset.y), straal, circlecolor
FOR ctr2 = 1 tot 50
VOLGENDE ctr2
CIRKEL (asteroid.x offset.x, asteroid.y + offset.y), straal, 0
VOLGENDE ctr
Missile.y = 5000
GOTO newasteroid
END IF
verplaatsen van $ = INKEY$
SELECT CASE verplaatsen$
CASE CHR$(0) + "K"
gun2 = pistool
Gun gun - 5 =
verkeer = 1
CASE CHR$(0) + "M"
gun2 = pistool
gun pistool + 5 =
verkeer = 1
CASE CHR$(0) + "H"
Missile.x = pistool
Missile.y = 147
CASE "q"
GOTO stoppen
LETTER 'p'
KLEUR 15
LIJN (gun - 20, 170)-(pistool + 20, 170)
LIJN (gun, 155)-(gun - 20, 170)
LIJN (gun, 155)-(pistool + 20, 170)
LIJN (gun - 3, 147)-(pistool + 3, 170), BF
LIJN (asteroid.x - 10, asteroid.y - 6)-(asteroid.x + 10, asteroid.y + 6), 6, BF
CIRKEL (missile.x, missile.y), 3, 12
ZOEK 12, 4
AFDRUKKEN "Game gepauzeerd Hit ruimte om door te gaan"
startpause:
a$ = INKEY$
SELECT CASE een$
GEVAL ""
ZOEK 12, 4
PRINT " "
GOTO endpause
EINDE SELECTEREN
GOTO startpause
EINDE SELECTEREN
endpause:
Ga naar een
gameover:
LIJN (1, 171)-(319, 171), 9
ZOEK 23, 1
KLEUR 9
PRINT "Shot:"; totalhit
ZOEK 23, 11
PRINT "niveau:"; niveau
ZOEK 23, 21
PRINT "Score:"; Score
KLEUR 15
LIJN (gun - 20, 170)-(pistool + 20, 170)
LIJN (gun, 155)-(gun - 20, 170)
LIJN (gun, 155)-(pistool + 20, 170)
LIJN (gun - 3, 147)-(pistool + 3, 170), BF
KLEUR 4
ZOEK 12, 1
PRINT "E O"
ZOEK 12, 1
PRINT "ME OV"
ZOEK 12, 1
PRINT "AME OVE"
ZOEK 12, 1
PRINT "GAME OVER"
ZOEK 12, 1
PRINT "GAME OVER"
ZOEK 12, 1
PRINT "GAME OVER"
ZOEK 12, 1
PRINT "GAME OVER"
ZOEK 12, 1
PRINT "GAME OVER"
ZOEK 12, 1
PRINT "GAME OVER"
ZOEK 12, 1
PRINT "GAME OVER"
ZOEK 12, 1
PRINT "GAME OVER"
ZOEK 12, 1
PRINT "GAME OVER"
ZOEK 12, 1
PRINT "GAME OVER"
ZOEK 12, 1
PRINT "GAME OVER"
ZOEK 12, 1
PRINT "GAME OVER"
ZOEK 12, 1
PRINT "GAME OVER"
ZOEK 12, 1
PRINT "GAME OVER"
ZOEK 12, 1
PRINT "GAME OVER"
ZOEK 12, 1
PRINT "GAME OVER"
VOOR ctr = 1 tot 500
VOLGENDE ctr
ZOEK 13, 13
AFDRUKKEN "opnieuw spelen? y/n"
playagain.y.n:
y.n$ = INKEY$
SELECT CASE y.n$
CASE "n"
GOTO stoppen
CASE "y"
GOTO playagain
EINDE SELECTEREN
GOTO playagain.y.n
afsluiten:
[/ code]
$ fbc-lang qb roids.bas