Terrain panoramique

Durée estimée: 45 minutes

Version textuelle

Présentation :

Dans cette étape, nous allons étendre l'espace dans lequel le lutin peut se déplacer (avec les flèches gauche, droite et haut).

Le terrain est actuellement limité au fond de scène, soit (480x 640 pixels).
On va passer à un terrain illimité, mais cette fois-ci :

  • le lutin va rester fixe, au centre : c'est le terrain qui va se déplacer, dans la direction inverse.
  • Ce qui était le fond de scène, va devenir une mosaïque de tuiles.
    Par exemple, ci-dessous, un arrangement de 2 tuiles par 2 tuiles.
    Chaque tuile a une image qui est un des costumes d'un nouveau lutin ou objet "terrain".
    La mosaïque va bouger pour donner l'impression que c'est le personnage qui se déplace. mosaiqueTerrain.png

Notions abordées :

On va voir deux points importants :

  • la notion de clone, avec la multiplication du nombre d'objets (ou lutins) d'un même type.
    En l'occurrence chacune des images qui constitue la mosaïque du terrain sera défini comme le clone d'un même modèle, mais avec des propriétés (ou variables) spécifiques dont le costume et la position et x et y dans la mosaïque.
  • la mise en application de l'abstraction procédurale :
    la seule procédure que l'on va changer, dans le code déjà écrit, c'est "déplacerXY"

Ressources en entrée :

Vous pouvez partir de la version réalisée dans l'étape précédente, mais vous trouverez plus facile ou du projet à l'adresse : https://scratch.mit.edu/projects/1315028780
Cette version fonctionne exactement comme la précédente, mais un nouveau lutin ou objet "terrain" a été créé avec 4 costumes qui vont servir aux mosaïques. Vous pourres naturellement modifier ou compléter ces costumes.

blocsEvenementsTerrain.jpg Pour le code il y aura 3 évènements à traiter, correspondant à 3 messages :

  • initialiser,
  • création d'un clône (chaque tuile est le clône d'un modèle)
  • déplacer : déplacement correspondant à la position du personnage dans la mosaïque.

Réalisation :

à compléter

Création de l'objet "terrain" et de ses clones

Il faut d'abord créer un objet ou lutin "terrain" avec 4 costumes (ceux affichés plus haut)que l'on va assembler en lignes et colonnes. C'est fait dans les ressources proposées en entrée. Faites le si cous partez de votre version.

Variables à définir :

  • Variables communes à tous les sprites
    • nombre de tuiles en lignes et colonnes : NbColonnesX =2 et NbLignesY =2
  • pourCeSpriteUniquement.jpg
  • Variables spécifiques à sprite ou chaque clone
    • x clone index numéro de colonne,
    • y clone index numéro de ligne,
    • clone décalage X décalage pixels en X, par rapporte aux tuiles de gauche.
    • clone décalage Y décalage pixels en Y, par rapport aux tuiles du bas.
    • x clone coordonnée x (entre -240 et 240) à laquelle doit être déplacé ce clone
    • y clone coordonnée y (entre -180 et 180)à laquelle doit être déplacé ce clone .

A l'initialisation : quand je reçois "initialiser"

  • NbColonnesX =2 et NbLignesY =2
  • masquer, échelle 100%, coordonnées (0,0), en arrière plan.
  • Demander la création des clônes
    • Pour les lignes y clone index de 1 à NblignesY
      • Pour les colonnes x clone index de 1 à NbcolonnesX
        • Lancer la création d'un clone

Au démarrage de chaque clone : "quand je commence comme un clone"

  • définir le décalage en X de ce clone : clone décalage X = (x clone index -1) * 480
  • définir le décalage en Y de ce clone : clone décalage Y = (y clone index -1) * 360
  • basculer vers le costume correspondant

Quand je reçois le message "déplacer"
Chaque clone doit se placer aux coordonnées x clone , y clone correspondant aux coordonnées du personnage super X player" et super Y player". On intègre le décalage dans le calcul.

  • x clone = clone décalage X - super X player
  • y clone = clone décalage Y - super Y player
  • et déplacer le clone : aller à x clone , y clone
blocsMosaiqueTer.jpg