Étape 2: Test de Gui.
roids.bas :
[code]
"UUUUUU ÜÛÛÛÛÛÛÜ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÜ ÜÛÛÛÛÛÜ UU ÛÛÛÛÛÛÜ ÜÛÛÛÛÛÛÜ
' Uu uu ÛÛß ßßß uu uu uu ßÛÛ ÛÛß ßÛÛ uu uu ßÛÛ ÛÛß ßßß
' UU UU ßÛÛÜ UU UU UU ÜÛÛ UU UU UU UU UU ßÛÛÜ
' ÛÛÛÛÛÛÛÛ ßÛÛÜ uu UUUUUU ÛÛÛÛÛÛß uu uu uu uu uu ßÛÛÜ
' UU UU ßÛÛÜ UU UU UU UU UU UU UU UU UU ßÛÛÜ
' UU UU ÛÛÜ ÜÛÛ UU UU UU UU ÛÛÜ ÜÛÛ UU UU ÜÛÛ ÛÛÜ ÜÛÛ
' Uu uu ßÛÛÛÛß uu ÛÛÛÛÛÛÛÛÛ uu uu ßÛÛÛÛÛß uu ÛÛÛÛÛÛß ßÛÛÛÛß
'
"Il s’agit d’un jeu d’une seule personne. L’objet est de tirer sur les astéroïdes tombant et
' empêcher de frapper la surface. Utilisez les touches fléchées gauche et droite pour
« déplacer votre pistolet et la touche haut pour le feu. La touche « P » s’arrête le jeu, et
"la touche « Q » termine. Quand un jeu est en pause, appuyez sur espace pour faire tourner
« encore une fois. Notation est basée sur le niveau que vous êtes sur. Plus le niveau est élevé, le
' plus points des astéroïdes frappés et le moins emmenés pour raté
"astéroïdes. Pendant que vous jouez, vous remarquerez peut-être l’écran scintillement mal, ou
"l’action de jeûner. Pour corriger cela, faire le nombre après Flicker.Control
'(shown below) plus grand. Si le jeu va trop lentement, réduisez le nombre.
Flicker.Control = 500' maintenant appuyer sur « F5 » pour jouer.
'
'
'
7 écran 320 X 200 résolution
RANDOMIZE TIMER
mouvement = 0
playagain :
CLS
LOCALISER 12, 1
COULEUR 15
ENTRÉE ; « Quel niveau vous voulez commencer à » ; niveau
LOCALISER 12, 1
PRINT " "
pistolet = 165
missile.x = -5000
missile.y = 5000
totalhit = 0
rate = 0
totaldropped = 0
newasteroid :
Asteroid.x = 319 * RND + 1
Asteroid.y = 1
totaldropped = totaldropped + 1
a:
COULEUR 0
Tout en mouvement = 1
LIGNE (gun2 - 20, 170)-(gun2 + 20, 170)
LIGNE (gun2, 155)-(gun2 - 20, 170)
LIGNE (gun2, 155)-(gun2 + 20, 170)
LIGNE (gun2 - 3, 147)-(gun2 + 3, 170), BF
mouvement = 0
WEND
COULEUR 15
LIGNE (gun - 20, 170)-(gun + 20, 170)
LIGNE (gun, 155)-(gun - 20, 170)
LIGNE (gun, 155)-(gun + 20, 170)
LIGNE (gun - 3, 147)-pistolet + 3 (170), BF
LIGNE (asteroid.x - 10, asteroid.y - 6)-(asteroid.x + 10, asteroid.y + 6), 6, BF
CERCLE (missile.x, missile.y), 3, 12
LIGNE (1, 171)-(319, 171), 9
Count = 1 à Flicker.Control
Nombre suivant
Asteroid.x2 = asteroid.x
Asteroid.Y2 = asteroid.y
missile.x2 = missile.x
missile.Y2 = missile.y
COULEUR 0
LIGNE (asteroid.x2 - 10, asteroid.y2 - 6)-(asteroid.x2 + 10, asteroid.y2 + 6), 0, BF
CERCLE (missile.x2, missile.y2), 3, 0
LOCALISER 23, 1
COULEUR 9
PRINT "Shot:" ; totalhit
LOCALISER 23, 11
PRINT "niveau:" ; niveau
LOCALISER 23, 21
PRINT "Score:" ; score
missile.y = missile.y - 5
IF missile.y < 1 puis
missile.y = 5000
END IF
Asteroid.y = asteroid.y + niveau *.75
IF asteroid.y > 170 puis
CERCLE (asteroid.x, asteroid.y), 30, 14
CERCLE (asteroid.x, asteroid.y), 30, 0
rate = jeune: + 1
Jeune : IF = 10 THEN
GOTO gameover
END IF
score = score - INT (10/niveau)
GOTO newasteroid
END IF
IF missile.x - 3 < asteroid.x + 10 AND missile.x + 3 > asteroid.x - 10 AND missile.y + 3 < asteroid.y + 6 puis
totalhit = totalhit + 1
IF totalhit / 10 = INT(totalhit / 10) alors
level = niveau + 1
rate = 0
END IF
score = score + 10 * niveau
POUR ctr = 1 à 7
rayon = 15 * RND + 5
offset.x = 40 * RND - 20
offset.y = 40 * RND - 20
circlecolor = 16 * RND
CERCLE (offset.x, asteroid.y, asteroid.x + offset.y), rayon, circlecolor
POUR ctr2 = 1 à 50
SUIVANT ctr2
CERCLE (offset.x, asteroid.y, asteroid.x + offset.y), rayon, 0
PROCHAINE ctr
missile.y = 5000
GOTO newasteroid
END IF
bouger$ = INKEY$
SELECT CASE bouger$
AFFAIRE CHR$(0) + « K »
gun2 = pistolet
pistolet = pistolet - 5
mouvement = 1
AFFAIRE CHR$(0) + « M »
gun2 = pistolet
pistolet = pistolet + 5
mouvement = 1
AFFAIRE CHR$(0) + « H »
missile.x = pistolet
missile.y = 147
CASE « q »
GOTO quit
CASE « p »
COULEUR 15
LIGNE (gun - 20, 170)-(gun + 20, 170)
LIGNE (gun, 155)-(gun - 20, 170)
LIGNE (gun, 155)-(gun + 20, 170)
LIGNE (gun - 3, 147)-pistolet + 3 (170), BF
LIGNE (asteroid.x - 10, asteroid.y - 6)-(asteroid.x + 10, asteroid.y + 6), 6, BF
CERCLE (missile.x, missile.y), 3, 12
LOCALISER 12, 4
IMPRIMER « Pause jeu appuyez sur espace pour continuer »
startpause :
a$ = INKEY$
SELECT CASE a$
AFFAIRE ""
LOCALISER 12, 4
PRINT " "
GOTO endpause
END SELECT
GOTO startpause
END SELECT
endpause :
GOTO un
gameover :
LIGNE (1, 171)-(319, 171), 9
LOCALISER 23, 1
COULEUR 9
PRINT "Shot:" ; totalhit
LOCALISER 23, 11
PRINT "niveau:" ; niveau
LOCALISER 23, 21
PRINT "Score:" ; score
COULEUR 15
LIGNE (gun - 20, 170)-(gun + 20, 170)
LIGNE (gun, 155)-(gun - 20, 170)
LIGNE (gun, 155)-(gun + 20, 170)
LIGNE (gun - 3, 147)-pistolet + 3 (170), BF
COULEUR 4
LOCALISER 12, 1
PRINT "E O"
LOCALISER 12, 1
PRINT "ME OV"
LOCALISER 12, 1
IMPRIMER « AME OVE »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
LOCALISER 12, 1
IMPRESSION « GAME OVER »
POUR ctr = 1 500
PROCHAINE ctr
LOCALISER 13, 13
IMPRIMER "rejouer ? o/n"
playagain.y.n :
y.n$ = INKEY$
SELECT CASE y.n$
CASE « n »
GOTO quit
AFFAIRE « y »
GOTO playagain
END SELECT
GOTO playagain.y.n
cesser de fumer :
[/ code]
$ fbc-lang qb roids.bas