En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies pour assurer le bon fonctionnement de nos services.
En savoir plus

Comme Mirages & ...

Par VALERIE MORDASINI-CARIVEN, publié le lundi 19 mars 2018 23:45 - Mis à jour le lundi 19 mars 2018 23:45

Comme … Mirages & Miracles … Ou presque !

 

  1. Télécharger l’archive en pièce jointe.
  2. Le décompresser et le copier dans votre espace perso/ICN.

Deux fichiers s’ouvrent :

Le principal qui se nomme : ……………….

Celui pour gérer la « comète » qui se nomme : ……………….

  1. Dans le programme principal, repérer la ligne qui définit le point de départ de la boule et son diamètre.
  2. Modifier ces valeurs pour tester.
  3. Modifier également sa couleur, attention ce n’est pas dans le programme principal. Pour vous aider à choisir la couleur : outil, sélecteur de couleur
  4. La comète sort de la fenêtre d’affichage vers le bas mais pas sur le côté. 

Repérer dans le programme Comete la fonction qui gère la collision avec les bords droit et gauche.

Puis modifier le programme pour créer une fonction checkWallCollisionY qui gère la collision avec le haut et le bas de la fenêtre.

  1. Dans le programme comète, modifier la variable damping pour comprendre ce qu’elle fait et trouver la valeur pour que la comète ne s’arrête jamais.
  2. Modifier également les valeurs de :  velocity = new PVector(0.2, 0); pour comprendre leur rôle respectif.
  3. A l’aide en ligne de Processing : https://processing.org/reference/image_.html modifier le programme principal pour insérer l’image beach.jpg présente dans le dossier mirages et l’afficher aux dimensions de la fenêtre.
  4. Modifier le programme Comete pour que l’on ait l’impression que la boule rebondisse sur les cailloux de la plage. Créer pour cela une fonction checkCaillouxCollision en vous inspirant de la fonction chekWallCollisionY

 

Une comète c’est bien, plusieurs c’est mieux … alors pour cela lisez attentivement ce qui suit.

  1. Tout d’abord en début de programme, nous allons déclarer le nombre de comètes :

//Déclaration d'une variable contenant le nombre de comètes

int nbreCometes = 3; (vous pourrez changer le nombre selon votre souhait)

 

//Déclaration d'une liste de comètes

Comete[] cometes = new Comete[nbreComete];

Il faut maintenant les créer dans le setup(). Nous allons donc dessiner trois comètes :

  
  // Création des cometes qui vont se déplacer dans l'image
  for (int i = 0; i<nbreComete;i++){
    cometes[i] = new Comete(150,0,10);
  }  

 
Dans la méthode draw() , nous allons aussi créer une boucle qui va parcourir tous les éléments de la liste pour les déplacer, tester leurs collisions et les afficher. Nous allons donc créer la boucle  

 
for (int i = 0; i<nbreComete;i++){}

 
et dans cette boucle appeler les différentes fonctions nécessaires à la gestion des comètes sur le modèle :
cometes[i].move() ;

 

  1. Exécuter le programme.

 

Petit problème : Les comètes ont toutes le même comportement, on ne peut donc les distinguer. Il faut donc introduire une valeur aléatoire de type random(-1,1) dans les variables de gestion de déplacement des comètes. Allez un petit indice, c’est une histoire de velocity.

Bravo !!! Super votre petite animation !!!

  1. S’il vous reste encore un peu de temps, nous vous proposons d’explorer une autre animation. Dans Processing, fichier/exemples/simulate/SimpleParticleSystem

Vous avez maintenant quelques connaissances supplémentaires pour modifier un peu le code.

Pièces jointes

À télécharger

 / 1
Catégories
  • projet1