Deuxième séance : réponses plus précises aux questions posées

Durant cette séance, nous devrons répondre de manière un peu plus précise aux questions que nous nous sommes posées auparavant concernant le codage des différentes étapes que nous auront à réaliser.

 

Commençons donc à répondre aux questions:

 

  • Comment créer le tireur?
    -pour créer le tireur plusieurs choix s'offrent a nous:
    - Créer un tireur sous forme d'un rectangle avec la fonction prédéfinie "rect".
    - Créer un tireur sous forme d'un cercle avec la fonction prédéfinie "ellipse".
    - Importer une image téléchargée afin de représenter le tireur ( = un vaisseau par exemple) en glissant le fichier image dans le sketch, on déclare auparavant un objet image grâce à " Pimage", on charge l'image dans l'objet "Pimage" grâce à la fonction "loadImage" et on affiche l'image grâce à la fonction "image".
    - Essayer de créer une image en noir et blanc de format .pbm, qui utilise des valeurs entre 0 et 255 pour coder chaque pixel, grâce au bloc note.

  • Comment créer le tir?

- Pour créer le tir il nous faudra créer un rectangle grâce à la fonction prédéfinie "rect" avec des paramètres définit. Le tir devra s’effectuer au centre du tireur.

  • Comment générer et déplacer le tir?

-Pour déplacer le tir et plus précisément pour tirer il faudra que le tir se génère lorsque que l'on presse sur la touche espace ("space") grâce à la variable booléen "KeyPressed" et la structure conditionnelle "if" qui exécutera l'instruction de générer le tir si l'on appuie sur la touche espace. Ensuite pour que le tir se déplace verticalement vers le haut,

Il faudra alors que la position en y du tir se décrémente d'un nombre défini grâce à une boucle "for" qui permettra de décrémenter la positon du tir jusqu’à atteindre une certaine position en y. Sinon, il faudra créer un rectangle de paramètres définit qui fera la taille de la fenêtre en hauteur, ainsi nous n'auront plus de besoin de le faire se déplacer.

Pour arrêter le tir, nous nous serviront de la variable booléen "KeyReleased". 

  • Comment créer les cibles?

- Pour créer des cibles, plusieurs choix s'offrent à nous :
-Créer des cibles sous forme d'un cercle avec la fonction prédéfinie "ellipse": Pour cela il faudra déclarer un tableau de valeurs qui prendra en mémoire un nombre définit de position en x et en y.

- Importer une image téléchargée afin de représenter les cibles ( = des aliens) en glissant le fichier image dans le sketch, on déclare auparavant un objet image grâce à " Pimage", on charge l'image dans l'objet "Pimage" grâce à la fonction "loadImage" et on affiche l'image grâce à la fonction "image".

- Essayer de créer une image en noir et blanc de format .pbm, qui utilise des valeurs entre 0 et 255 pour coder chaque pixel, grâce au bloc note.


 

  • Comment gérer le déplacement des cibles?

- Pour que les cibles se déplacent il faudra déclarer un tableau de valeurs en 1 et 10 par exemple ce qui représentera l'intensité de la vitesse. Ensuite il nous suffira de définir une vitesse et de l'ajouter a la position en X des Balles dans une bouche "for".

 


 

  • Comment gérer les collisions?

- Pour gérer les collisions entre le tir et les cibles il faudra utiliser une structure conditionnelle "if" afin que quand la cible entre dans une zone définie autour du tir elle disparaisse ( elle est expédiée en dehors de la fenêtre). Cependant, cette méthode n'est pas très précise donc il nous faudra réduire au maximum cette zone de destruction des cibles ou au mieux trouver une méthode pour rendre plus précises les collisions.


 

  • Comment afficher le score?

- Pour afficher le score il faudra déclarer une variable entière nommée "compteur" qui s'incrémentera de 1 lorsqu'une cible sera détruite. Pour cela dans la structure conditionnelle "if" qui prendra en charge la destruction des cibles, lorsque qu'une cible sera détruite nous donneront l'instruction d'augmenter le compteur de 1.

 


 

  • Comment afficher le temps écoulé?

- Pour afficher le temps écoulé nous avons pensé à faire apparaître un chronomètre. Pour cela, grâce à l'aide de Processing

nous sommes appercu qu'il faudra utiliser les fonctions "millis()" "second()" et eventuellement "minute()". La fonctions "millis" fait apparâitre les millisecondes passées depuis l'ouverture de la fenêtre. Ainsi, pour faire apparaître des secondes, il faudra diviser ce résultat par 1000.  
 

  • Comment arrêter le programme?

-Pour arrêter le programme, dans la fenêtre, il y aura un bouton "quitter" en haut à droite ainsi nous pourront arrêter la partie à n'importe quel moment du jeu. Pour cela, nous utiliseront la fonction prédéfinie "MousePressed" dans une structure conditionnelle "if". Lorsque nous cliqueront dans une zone définie autour du "bouton" alors le programme s’arrêtera grâce a la fonction prédéfinie "exit".

 


 

  • Comment recommencer une partie?

-Pour recommencer une partie, dans la fenêtre, il y aura un bouton "replay" en haut à droite, ainsi nous pourront recommencer la partie à n'importe quel moment ou alors lorsque nous auront perdu. Pour cela, nous utiliseront la fonction prédéfinie "MousePressed" dans une structure conditionnelle "if". Lorsque nous cliqueront dans une zone définie autour du "bouton" alors nous recommenceront une partie. Le compteur reviendra à 0, et les cibles seront réinitialisées au nombre de départ.


 

  • Comment insérer des musiques/sons?

-Nous pourront accompagner l’exécution de notre programme grâce à un objet audio (minim minim) cet objet stockera de la musique qui sera exécutée par l'objet : AudioPlayer Player. Cependant toutes les fonctionnalités ne sont pas chargées par défaut dans processing, il faudra importer notre bibliothèque audio grâce à : import ddf.minim.* .

 


 

  • Comment passer à un niveau supérieur?

-Pour passer à un niveau supérieur il faudra tout d'abord déclarer une variable entière nommée "niveau". Ensuite, lorsque toutes les cibles seront détruites, c'est-a-dire lorsque le compteur affichera le nombre de cibles initialisées en début de partie alors la variable "niveau" augmentera de 1 et le niveau sera affiché dans la fenêtre. Pour cela, nous utiliseront une structure conditionnelle "if".

 


 

  • Comment afficher un fond d'écran étoilé?

-Pour afficher un fond d’écran étoilé, nous déclareront un tableau de valeurs pour stocker des positions en x et y des balles qui se déplaceront aléatoirement dans la fenêtre à une vitesse aléatoire. Les balles seront créées grâce à la fonction prédéfinie "ellipse". Pour que les valeurs du tableau soient choisies aléatoirement nous utiliseront la fonction "random prédéfinie.


 

  • Comment modifier la vitesse de déplacement des cibles après chaque niveau?

-Pour modifier la vitesse des cibles après chaque niveau, dans la structure conditionnelle "if" quand par exemple la variable "niveau" affichera 2 alors la variable qui définie la vitesse de déplacement des cibles sera augmentée de 5 ( par exemple) ce qui rendra de déplacement plus rapide. 

 


 

  • Comment varier le nombre de cibles notamment pour le changement de niveau?

-Pour modifier la vitesse des cibles après chaque niveau, dans la structure conditionnelle "if" quand par exemple la variable "Niveau" affichera 2 alors la variable qui définie le nombre de cible (notée "z") sera augmentée de 10 ( par exemple). 10 cibles supplémentaires apparaîtront alors.

 


 

  • Comment créer sa propre image?

- Pour créer notre image nous disposons de deux méthodes:

- Une représentation vectorielle avec processing, on définit des formes géométriques grâce aux fonctions prédéfinies comme "rect", "ellipse"..

- Grâce au bloc note où nous pouvons créer des images  simple dans les formats : ".pbm";".pgm";".ppm".