jeu de balles → Pong

Durée estimée: 20 minutes

Vos missions, pour améliorer le jeu ...

  1. pong2Challenges/assets/img/oeufCasse.png pong2Challenges/assets/img/poele.png pong2Challenges/assets/img/oeuf.png customiser le jeu avec vos images, par exemple un oeuf pour la balle, une poele pour la raquette et si l'oeuf touche le bord du bas, ça fait une omelette
  2. démarrer une partie au lancement de l'application, (en utlisant une procédure)
  3. gérer les vies, on a 3 vies, mais la balle doit garder la vitesse qu'elle avait atteinte.

Challenge 1: changer le look

Plutôt qu'une balle et une raquette, pourquoi pas un oeuf et une balle ?
et aussi des sons quand la balle touche un côté ou le sol.
Vous trouverez des images et des sons à cette adresse http://onvaessayer.org/cycle4/pong/resources/media. Vous pouvez aussi importer des images et des sons (au formats jpeg, png, mp3). Choisissez des images de petite taille et adaptez dans le design ou par programme leur largeur et hauteur.

Pour remplacer la balle par un oeuf (ou une crêpe, ...) il suffit de changer l'image du lutin balle, et pour remplacer la raquette par une poele ils suffit de changer l'image du lutin raquette. Vous pouvez aussi changer le décor, par exemple une image de cuisine en fond d'écran.

Pour pouvoir revenir aux images initiales pendant le jeu, ou les modifier facilement, mieux vaut déclarer une variable pour les images et les sons.

Essayez aussi un truc : par exemple quand l'oeuf ou la crêpe tombent par terre, l'image change, par exemple l'oeuf se casse ...

Challenge 2: gérer les vies

Nouvelle règle : on peut perdre 3 fois, la balle doit repartir à la vitesse déjà atteinte

Pour réaliser cette modification, vous allez ajouter une nouvelle variable nbvies.
nbvies est remis à 3 au début de chaque partie et dimiminue de 1 à chaque fois que la balle atteint le bord bas. La balle doit ensuite repartir à la vitesse qu'elle avait atteinte.
Le jeu s'arrête quand le nombre de vies est égal à 0.

Le nombre de vies sera affiché dans un label placé en haut, de préférence à gauche du score. Pour ça, dans le design, vous pourrez utiliser un "arrangement horizontal" de la catégorie "disposition", et y placer un nouveau label pour afficher le nombre de vies, et l'ancien label qui affiche déjà le score.

Solution du challenge 2

Liste des modifications à effectuer :
  • créer les variables nbVies initialisée à 3 et partieEncours à faux
  • mettre nbVies à 3 au début de chaque partie (Quand Cadre1.Touché)
  • si le bord bas est touché Quand lutinBalle.bord Atteint retirer 1 à nbVies et l'afficher dans labelVies.Texte
  • Donc on va décomposer la procédure démarrerUnePartie en 2 étapes
    • la première qui remet le score à 0 et la itesse à la vitesse initiale
    • la deuxième séparée dans une nouvelle procédure reprendreUnePartie où on mettra tous les autres blocs, et que l'on appellera
      • dans la procédure reprendreUnePartie pour quelle soit complète
      • et pour reprendre la partie
    modifications Pong
    Déclaration des variables,
    • nbVies pour le nombre de vies
    • partieEnCours vrai si une partie est en cours,
    pong2Challenges/assets/img/variables2C.png
    au démarrage de l'application Quand Cadre1.Touché On doit distinguer 2 cas
    • Si la partie est en cours et qu'il reste des vies
      • reprendre la partie, sans remettre à 3 le nombre de vies, ni la vitesse, ni le score
    • Sinon
      • redémarrer la partie :
        remettre à 3 nbVies et afficher
        remettre le score à 0 et afficher
        remettre la vitesse initiale,
    On va donc décomposer les blocs de l'évènement Quand Cadre1.touch en 2 procédures :
    • reprendreUnePartie qui reprend les bocs précédentes sauf ceux réinitialisent les variables de la partie
    • demarrerUnePartie qui réinitialise les variables de la partie et appelle reprendreUnePartie
    nota : On peut aussi ajouter un appel à demarrerUnePartie à la fin du script QaundScreen1.Initialize
    pong2Challenges/assets/img/cadreTouchéC2a.png pong2Challenges/assets/img/cadreTouchéC2c.png pong2Challenges/assets/img/cadreTouchéC2b.png
    Quand lutinBalle bord.atteint





    Si c'est le bord bas
    • mettre partieEnCours à faux
    • afficher "perdu" et demander si l'utilisateur veut rejouer avec 2 réponses : oui ou non

    • quand l'utlisater à répondu
      Quand notificateur1. ChoixEffectué
      • Si oui : appeler demarrerUnePartie
      • sinon : ferme l'écran pour soirtir de l'application
    pong2Challenges/assets/img/bordatteint2C2a.png pong2Challenges/assets/img/choixEffectue2Ca.png

Envoyer un commentaire