Paso 2: Prueba interfaz gráfica de usuario.
Roids.BAS:
[código]
' ÜÛÛÛÛÜ ÜÛÛÛÛÛÛÜ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÜ ÜÛÛÛÛÛÜ ÛÙ ÛÛÛÛÛÛÜ ÜÛÛÛÛÛÛÜ
' ÛÙ ÛÙ ÛÛß ßßß ÛÙ ÛÙ ÛÙ ßÛÛ ÛÛß ßÛÛ ÛÙ ÛÙ ßÛÛ ÛÛß ßßß
' ÛÙ ÛÙ ßÛÛÜ ÛÙ ÛÙ ÛÙ ÜÛÛ ÛÙ ÛÙ ÛÙ ÛÙ ÛÙ ßÛÛÜ
' ÛÛÛÛÛÛÛÛ ßÛÛÜ ÛÙ uuuuuu ÛÛÛÛÛÛß ÛÙ ÛÙ ÛÙ ÛÙ ÛÙ ßÛÛÜ
' ÛÙ ÛÙ ßÛÛÜ ÛÙ ÛÙ ÛÙ ÛÙ ÛÙ ÛÙ ÛÙ ÛÙ ÛÙ ßÛÛÜ
' ÛÙ ÛÙ ÛÛÜ ÜÛÛ ÛÙ ÛÙ ÛÙ ÛÙ ÛÛÜ ÜÛÛ ÛÙ ÛÙ ÜÛÛ ÛÛÜ ÜÛÛ
' ÛÙ ÛÙ ßÛÛÛÛß ÛÙ ÛÛÛÛÛÛÛÛÛ ÛÙ ÛÙ ßÛÛÛÛÛß ÛÙ ÛÛÛÛÛÛß ßÛÛÛÛß
'
' Este es un juego de una persona. El objetivo es disparar a los asteroides caen y
' impedir que golpear la superficie. Utilice las teclas de flecha izquierda y derecha para
' mover el arma y la tecla arriba para disparar. El botón "P" hace una pausa el juego, y
' el botón de "Q" finaliza. Cuando un juego está en pausa, pulsa space para hacerlo correr
' otra vez. Puntuación se basa en el nivel que estás. Cuanto mayor sea el nivel, la
' más puntos de golpeadas asteroides y los menos puntos quitados para perderse
' asteroides. Mientras usted juega, usted puede notar la pantalla oscilar gravemente, o
' la acción rápida. Para corregir esto, haga el número después de Flicker.Control
'(shown below) más grande. Si el juego va demasiado lento, hacer el número más pequeño.
Flicker.Control = 500' Pulse "F5" para jugar.
'
'
'
7 de pantalla de 320 X 200 resolución
RANDOMIZE TIMER
movimiento = 0
playagain:
CLS
LOCALIZAR 12, 1
COLOR 15
ENTRADA; "Qué nivel quiere empezar a"; nivel
LOCALIZAR 12, 1
PRINT " "
arma = 165
Missile.x =-5000
Missile.y = 5000
totalhit = 0
falta = 0
totaldropped = 0
newasteroid:
Asteroid.x = 319 * RND + 1
Asteroid.y = 1
totaldropped = totaldropped + 1
a:
COLOR 0
Al mismo tiempo de movimiento = 1
LÍNEA (gun2 - 20, 170)-(gun2 + 20, 170)
LÍNEA (gun2, 155)-(gun2 - 20, 170)
LÍNEA (gun2, 155)-(gun2 + 20, 170)
LÍNEA (gun2 - 3, 147)-(gun2 + 3, 170), BF
movimiento = 0
VENDO
COLOR 15
LÍNEA (pistola - 20, 170)-(pistola + 20, 170)
LÍNEA (arma, 155)-(pistola - 20, 170)
LÍNEA (arma, 155)-(pistola + 20, 170)
LÍNEA (pistola - 3, 147)-(pistola + 3, 170), BF
LÍNEA (asteroid.x - 10, asteroid.y - 6)-(asteroid.x + 10, asteroid.y + 6), 6, BF
CÍRCULO (missile.x, missile.y), 3, 12
LÍNEA (1, 171)-(319, 171), 9
PARA cuenta = 1 a Flicker.Control
SIGUIENTE cuenta
Asteroid.x2 = asteroid.x
Asteroid.Y2 = asteroid.y
Missile.x2 = missile.x
Missile.Y2 = missile.y
COLOR 0
LÍNEA (asteroid.x2 - 10, asteroid.y2 - 6)-(asteroid.x2 + 10, asteroid.y2 + 6), 0, BF
CÍRCULO (missile.x2, missile.y2), 3, 0
LOCALIZAR 23, 1
COLOR 9
Imprimir "Shot:"; totalhit
LOCALIZAR 23, 11
Imprimir "nivel:"; nivel
LOCALIZAR 23, 21
PRINT "resultado:"; puntuación
Missile.y = missile.y - 5
IF missile.y < 1 entonces
Missile.y = 5000
END IF
Asteroid.y = asteroid.y + nivel *.75
IF asteroid.y > 170 entonces
CÍRCULO (asteroid.x, asteroid.y), 14, 30
CÍRCULO (asteroid.x, asteroid.y), 30, 0
fallos = fallos + 1
Falta de IF = 10 entonces
GOTO gameover
END IF
puntuación = puntuación - INT (10/nivel)
GOTO newasteroid
END IF
IF missile.x - 3 < asteroid.x + 10 y missile.x + 3 > asteroid.x - 10 y missile.y + 3 < asteroid.y + 6 entonces
totalhit = totalhit + 1
IF totalhit / 10 = INT(totalhit / 10) entonces
nivel = nivel + 1
falta = 0
END IF
puntuación = puntuación + 10 * nivel
PARA ctr = 1 a 7
radio = 15 * RND + 5
offset.x = 40 * RND - 20
offset.y = 40 * RND - 20
circlecolor = 16 * RND
CÍRCULO (asteroid.x offset.x, asteroid.y + offset.y), radio, circlecolor
PARA ctr2 = 1 a 50
Ctr2 siguiente
CÍRCULO (asteroid.x offset.x, asteroid.y + offset.y), radio, 0
SIGUIENTE ctr
Missile.y = 5000
GOTO newasteroid
END IF
mueven$ = $ INKEY
SELECT CASE mueve$
CASO CHR$(0) + "K"
gun2 = pistola
arma = arma - 5
movimiento = 1
CASO CHR$(0) + "M"
gun2 = pistola
arma = arma + 5
movimiento = 1
CASO CHR$(0) + "H"
Missile.x = pistola
Missile.y = 147
CASO "q"
GOTO salir
CASO "p"
COLOR 15
LÍNEA (pistola - 20, 170)-(pistola + 20, 170)
LÍNEA (arma, 155)-(pistola - 20, 170)
LÍNEA (arma, 155)-(pistola + 20, 170)
LÍNEA (pistola - 3, 147)-(pistola + 3, 170), BF
LÍNEA (asteroid.x - 10, asteroid.y - 6)-(asteroid.x + 10, asteroid.y + 6), 6, BF
CÍRCULO (missile.x, missile.y), 3, 12
LOCALIZAR 12, 4
Imprimir "Juego pausado pulsa Space para continuar"
startpause:
a$ = $ INKEY
SELECT CASE a$
CASO ""
LOCALIZAR 12, 4
PRINT " "
GOTO endpause
FINAL SELECCIONE
GOTO startpause
FINAL SELECCIONE
endpause:
GOTO una
GameOver:
LÍNEA (1, 171)-(319, 171), 9
LOCALIZAR 23, 1
COLOR 9
Imprimir "Shot:"; totalhit
LOCALIZAR 23, 11
Imprimir "nivel:"; nivel
LOCALIZAR 23, 21
PRINT "resultado:"; puntuación
COLOR 15
LÍNEA (pistola - 20, 170)-(pistola + 20, 170)
LÍNEA (arma, 155)-(pistola - 20, 170)
LÍNEA (arma, 155)-(pistola + 20, 170)
LÍNEA (pistola - 3, 147)-(pistola + 3, 170), BF
COLOR 4
LOCALIZAR 12, 1
PRINT "E O"
LOCALIZAR 12, 1
PRINT "ME OV"
LOCALIZAR 12, 1
IMPRIMIR "AME OVE"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
LOCALIZAR 12, 1
IMPRIMIR "GAME OVER"
PARA ctr = 1 a 500
SIGUIENTE ctr
LOCALIZAR 13, 13
¿Imprimir "jugar otra vez? s/n"
playagain.y.n:
y.n$ = $ INKEY
SELECT CASE y.n$
CASO "n"
GOTO salir
CASO "y"
GOTO playagain
FINAL SELECCIONE
GOTO playagain.y.n
dejar de fumar:
[/ code]
$ fbc-lang qb roids.bas