User manual
Le programme contient beaucoup de notions déjà connues.
Cette fois-ci encore, il
y a par exemple la fonction
drawBall(), qui – en fonction de la position actuelle –
dessine une balle dans le terrain de jeu. De façon analogue, on trouve les
fonctions drawPlayer() et drawField(), qui dessinent les deux raquettes sur l'écran.
Avec drawField(), il y a aussi une nouvelle fonction, celle de drawValue(), qui
dessine à une position donnée le niveau actuel ou le score. Le niveau actuel
change toujours quand la balle a été parée avec succès. Cela est vérifié par la
fonction moveBall().
001
void moveBall() {
002
if (ballX == 1 || ballX == 127) {
003
setup();
004
}
005
if (ballY == 1 || ballY == 63) {
006
collisionY = collisionY * -1;
007
}
008
if (abs(ballX - player1X) <=2 && abs(ballY - player1Y) < 9) {
009
collisionX = collisionX * -1;
010
level++;
011
}
012
if (abs(ballX - player2X) <=2 && abs(ballY - player2Y) < 9) {
013
collisionX = collisionX * -1;
014
level++;
015
}
016
ballX = ballX + collisionX;
017
ballY = ballY + collisionY;
018
}
Comme vous le voyez, il y a diverses interrogations sur la position de la balle. Si
celle-ci se trouve à la position x à 1 ou 127, cela signifie qu'elle n'a pas été parée
avec succès ou bien qu'elle a volé vers le bord gauche ou droit du terrain de jeu.
Dans ce cas, la routine d'installation est appelée et le jeu peut recommencer du
début. Si la balle se trouve à la position y 1 ou 63, elle rebondit sur le bord
supérieur ou inférieur en contestant la variable de collision Y et la direction de la
balle est ainsi inversée. Comme dans les deux interrogations, if (abs(ballX -
player1X) <=2 && abs(ballY - player1Y) < 9)