jeu de balles → Pong
Durée estimée: 20 minutes
Modification du design :
On va repartir d'une version du jeu de balles, qui fonctionne comme la précédente mais avec les modifications suivantes :
- le remplacement des composants de type "balle" par des "lutins image".
(ce qui permet d'afficher des images). - des changements de nom
Balle1 devientlutinBalle ,Balle2 devientlutinRaquette , - l'ajout d'images dans les media : balle1.png, balle2.png, balleT.png, raquette.png et space.jpg
disponibles à cette adresse http://onvaessayer.org/cycle4/pong/resources/media
remplacement des composants de type "balle" par des "lutins"
Modifications du design pour passer à Pong
Pour passer à Pong, on va changer les images du lutinBalle et du lutinRaquette , ajuster leur taille, et mettre une image de fond pour Screen1,
ce qui donne le design mis à jour suivant suivant (les modifications à effetuer ou évriier sont en bleu):
type | catégorie | Nom | rôle | propriété | valeur |
---|---|---|---|---|---|
Screen1 | racine | alignt horiz. alignt vertical couleur fond orient. écran status bar titre visible |
centré haut gris clair portrait Non Non |
||
label | Interface | labelScore | compter le score | couleur fond taille Police largeur hauteur Texte couleur Texte |
aucun 24 automatique automatique score : 0 rouge |
cadre | dessin | Cadre1 | cadre de jeu | couleur fond largeur hauteur |
remplir parent remplir parent |
lutin image |
dessin | lutinBalle |
hauteur largeur image intervalle rotation vitesse |
40 40 balleT.png 20 non coché 0 |
|
lutin image |
dessin | lutinRaquette |
hauteur largeur intervalle rotation vitesse |
35 120 20 non coché 0 |
|
notificateur | interface utilisateur | Notificateur1 | messages et alertes | ||
son | media | Son1 | vibration | ||
accéléromètre | capteurs | Accéléromètre1 | déplacement raquette | sensibilité | modéré |
horloge | capteurs | HorlogeAccelero | déplacement raquette | timer always fire chrono activé intervalle |
non coché coché 20 |
Modification du code : jeu de balles → Pong:
La version qui coprend les mises à jour précédentes peut être téléchargée à cette adressePour réaliser Pong on repart du jeu de balle, (avec la version modifiée du design). Vous pouvez commencer par désactiver tous les blocs et réactiver les scripts au fur et à mesure de leur modification.
On applique la décomposition précédente avec 2 nouvelles variables et 4 scripts à modifier :
- initialisation des nouvelles variables :
vitesseInitiale etaccélération - modification du script de démarrage d'une partie :
quand cadre1.touché - modification du script de déplacement de la raquette :
quand horlogeAccelero.chronomètre - modification du script de collision entre balle et raquette :
quand lutinBalle.collision - modification du script lié aux bords :
quand lutinBalle.bord Atteint
Pour modifier le code avec App Inventor, suivez le tableau suivant. La décomposition déjà faite est rappelée à droite, et les blocs à modifier à gauche.
Jeu de balles
balle 1 balle 2 | Pong
lutinBalle lutinRaquette |
|
|
Modification du script de démarrage d'une partie : quand cadre1.touché
Jeu de balles
balle 1 balle 2 | Pong
lutinBalle lutinRaquette | |
quand le joueur touche le cadre de dessin, démarrer une partie :
| quand le joueur touche le cadre de dessin, démarrer une partie :
| |
|
à chaque déclenchement du chronomètre : quand horlogeAccelero.chronomètre
Jeu de balles
balle 1 balle 2 | Pong
lutinBalle lutinRaquette |
A chaque intervalle d'horloge (chronomètre)
|
A chaque intervalle d'horloge(chronomètre)
|
|
quand la balle rentre en collision avec la raquette : quand lutinBalle.collision
Jeu de balles
balle 1 balle 2 | Pong
lutinBalle lutinRaquette |
quand la
| quand la
|
|
quand la balle atteint un bord : quand lutinBalle.bord Atteint
Jeu de balles
balle 1 balle 2 | Pong
lutinBalle lutinRaquette |
quand la
| quand la
|
Le 1: north, 3: east, -1: south, -3: west, 2: northeast, 4: southeast, -2: southwest, -4: northwest si 2 bords sont touchés en même temps
Vous pouvez tester le bord touché avec ces nombres ou avec les constantes définies dans les composants lutin :
| |
|