Vos extensions sur Android Mash

Durée estimée: 45 minutes

Présentation

Améliorez Android Mash!
Dans cette leçon vous aller réaliser plusieurs améliorations d'Android Mash. Vous aurez des indications pour vous aider.

Objectifs :
Dans cette leçon vous allez :

  • pratiquer la programmation évènementielle ;
  • utiliser des variables de façon plus approfondie ;
  • utiliser les blocs de branchement conditionnel "si/sinon" et prendre des décisions dans vos algorithmes.

Programmation et création de projets

  1. Personnalisez le jeu : changez l'image de fond et le personnage à écraser.

  2. Pour que ça ressemble vraiment à un jeu, ajoutez une fonction qui met à jour et affiche le score.

    Pour ça, modifiez l'interface utilisateur, dans lequel vous afficherez une variable score. Indication : servez vous de ce que vous avez appris sur l'incrémentation d'une variable dans l'application "peinture".

  3. Définissez le score à atteindre pour gagner.(et testez avec un bloc Si/sinon)

    Avec un bloc Si/sinon (If/else), testez si le score est atteint à chaque fois qu'il change. Si oui arrêtez le jeu et félicitez le joueur.
    Pour arrêter le jeu vous devez arrêter le déplacement aléatoire du personnage à écraser.

    (Autre amélioration possible : dites quelque chose au joueur quand il a gagné avec le composant Texte à parole).

  4. Abstration Procédurale :

    Ajoutez un bouton de remise à zéro (ou reset) qui permet au joueur de recommmencer à jouer lorsque le jeu s'est arrêté. Définissez une procédure reset qui encapsule (i.e. contient) l'algorithme correspondant à la remise à zéro au redémarrage du jeu.

    Cet algorithme doit remettre le score à 0 et redémarrer les mouvements aléatoires du personnage. Cette procédure doit être appelée par le gestionnaire d'évènements (event handler) associé au bouton Reset. Appelez également cette procédure au démarrage de l'application dans l'évènement Screen1.Initialise. Vérifiez que les conventions de nommage que vous utilisez pour désigner les composants sont correctes. (Note : le composant Screen1 - qui est celui de plus haut niveau - ne peut pas être renommé).

  5. Invenntez vos propres améliorations. Quelques pistes ?
    • Rnregistrer le nombre de coups ratés -- c'est à dire le nombre de fois où le joueur n'a pas atteint le personnage -- et en tenir compte dans le score.
    • Challenge : Modifiez la vitesse à laquelle le personnage se déplace en fonction du score (Indice : rappelez-vous que dans cette application, le déplacement du personnage est controlé par les évènements liés à l'horloge (Horloge.chronomètre).

Réalisation avec App Inventor

Pour cette leçon, vous pouvez utiliser le projet que vous avez créé dans la leçon précédente. Vous pouvez le faire en créant une nouvelle version de l'application (par exemple la version V2).

  • Démarrez App Inventor,
  • ouvrez le projet AndroidMash,
  • puis utilisez la commande Enregistrer le projet sous ... dans l'onglet Projets,
    mais au lieu du nom suggéré dans la fenêtre (du type AndroidMash_copie) entrez un nom comme AndroidMashV2, ou AndroidMashV2_20161125 pour indiquer que c'est une nouvelle version et/ou vous rappeler de sa date.
    Après avoir fait cette opération, la fenêtre App Inventor sera rafraichie et vous continuerez à travailler sur cette nouvelle version (dont le nom apparait en haut à gauche de la bande verte).

Nota :

Il est recommandé d'enregistrer une nouvelle version de votre application après chaque modification significative.
Ca permet de revenir à la version précédente en cas de problème ... et vous verrez qu'il arrive de faire de grosses maladresses, surtout quand on est pressé et que tout doit être prêt dans 20 mn. C'est souvent à ce moment là que l'on perd une semaine de travail, parfois plus ... Alors faites des sauvegardes régulières et notez dans votre porfolio ou votre cahier ce que fait chaque version.
Pour des sauvegardes à plus court terme (plusieurs fois par jour) vous pouvez utiliser la commande Point de contrôle dans l'onglet Projets. Vous verrez (probablement) que cette commande a un petit bogue en français car l'accent circonflexe n'est pas accepté dans les noms de projets. Vous devrez donc supprimer cet accent et incrémenter maanuellement le numéro du point de contrôle. Notez que la commande Point de contrôle, crée une sauvegarde, mais vous continuez à travailler sur le même projet (contrairement la commande Enregistrer le projet sous ...*).


Ensuite faites l'exercice décrit dans la vidéo (ou la version textuelle).

Si vous êtes coincés, regardez la solution vidéo (mais cherhez d'abord à trouver la solution par vous même !)

Auto-contrôle

1 point  

1 point

1 point  

Solutions

Pour votre Portfolio

Créez une page nommée : Projets Android Mash dans la catégorie "Création de Projets " de votre portfolio, puis répondez aux questions suivantes :

  1. Décrivez brièvement les améliorations que vous avez apportées à votre application. Ajoutez des copies d'écran des blocs que vous avez ajoutées et décrivez comment vous les avez utilisés pour résoudre les problèmes de programmation.
  2. Lorsque l''utilisateur touche un "lutin Image " (ou image lutin), l'évènement Cadre.touché et l'évènement Image_lutin.touché sont tous les deux déclenchés. C'est très utile pour faire des jeux plus compliqués. Par exemple, si il y a deux personnages dans votre jeu avec la règle suivante : si vous touchez le premier personnage, vous gagnez 1 point. Si vous touchez le second vous en perdez 2, et si vous touchez l'écran sans toucher un seul personnage, vous perdez un point.
    Comment feriez vous pour coder cette règle du jeu ?
  3. Comment pouvez-vous accélérer le déplacement du personnage ? Comment faire pour qu'il se déplace le plus vite possible ?