
Le site de Théo & Noé


Pour ce trimestre en ICN, nous allons créer un jeu vidéo !
Le jeu à comme objectif de montrer les gestes à adopter lors d'une attaque terroriste dans un lycée. Mais évidemment la création d'un jeu n'est pas rapide , il faut avant tout l'écrire, réunir tout ce qu'il faut ( images, son, idées ! ).
Nous avons donc conçus un scénario avec la classe de 2°1 voici le script du programme simplifié :
Fenêtre 1 : Présentation du projet + bouton suivant
Fenêtre 2 : Affiche réagir en cas d'attaque + bouton simuler une attaque
Fenêtre 3 : Présentation des commandes du jeu
Fenêtre 4 : Déclenchement de l'animation
Fenêtre 5 : Déclenchement de l'alerte, séparation de l'écran en 2, chronomètre
Fenêtre 6 : Le joueur peut déplacer les gens , les tables...
Fenêtre 7 : Si préparation réussi, la police arrive et le terroriste est arrêté
Nous sommes allées ensuite prendre des photos du lycée pour tracer le parcours du terroriste jusqu'à la salle INFOMATHS. Son parcours est :
-
Entrée principale du Lycée
-
Cour d'honneur
-
Vie Scolaire
-
Cour de la cheminée
-
Tunnel rue Francis CARCO
-
Cour du pôle scientifique
-
Couloir salle INFOMATHS
Pour faire marcher une personne sur les images, nous somme allées sur internet pour chercher un GIF d'une personne qui marchait pour l'insérer dans le jeu. Le GIF est une silhouette qui représente le terroriste
L'objectif est maintenant de déplacer le GIF avec l'image de l'entrée du lycée pour faire entrer le terroriste dans le bâtiment. Pour cela il faut commencer à écrire un peu !
Nous utilisons le logiciel Processing pour écrire le code source du jeu, et le code est ci-dessous :
PImage img; //Déclaration de l'image de fond "img"
float n=1; //Déclaration d'un décimal "n" et affectation de la valeur 1
float xpos, ypos; //Déclaration des coordonnées initiales de l'image
float imageSize = 8; //Déclaration d'un décimal taille de l'image et affectation de la valeur 8
PImage [] silhouette;
int compteur=0;
String[] images = {
"s (1).png", "s (2).png", "s (3).png", "s (4).png", "s (5).png", "s (6).png", "s (7).png", "s (8).png", "s (9).png", "s (10).png", "s (11).png", "s (12).png", "s (13).png", "s (14).png", "s (15).png", "s (16).png", "s (17).png", "s (18).png"
}; // list of images to load
void setup() {
xpos = 350;
ypos = 150;
frameRate(9);
size(640, 360);
img = loadImage("palissy1.jpg"); //chargement de l'image de fond
silhouette = new PImage[17];
for (int i=0; i<17; i++)
{
silhouette[i] = loadImage(images[i]);
}
}
void draw() {
//background(255);
image(img, 0, 0, img.width, img.height); //Affichage de l'image de fond
n=n+0.1;
imageSize=imageSize-0.2;
//background(#FF12E8);
// Update the position of the shape
xpos = xpos -2.9*n;
ypos = ypos +0.7*n; //Lignes de code empiriques permettant de déplacer et agrandir l'image ( de la ligne " n=n+0.1;" à ici )
// Displays the image at its actual size at point (0,0)
if (xpos < 100) { xpos=-7000;textSize(20); text("Le terroriste est passé", 200,200); } //Si l'image du terroriste atteint la porte , elle n'est plus affichée
image(silhouette[compteur], xpos, ypos, silhouette[compteur].width/imageSize, silhouette[compteur].height/imageSize);.3
compteur++;
if (compteur==17) {
compteur=0;
}
}
Le code du premier tableau est terminé ! Il reste donc six tableau à écrire. Nous n'allons pas mettre les codes des six autres mais nous allons montrer ce qui a était modifié !
Tableau 2 :
Modification des valeurs y/xpos pour définir le point de départ du GIF Modification du non de l'image de fond
Modicifation des veleur x/ypos
variables qui permettent l'enchainnement des tableaux
1 > Variable entière dont la valeur est 1 à dès que l'image de fond change
xpos/ypos : Absysses et ordonées
image size : permet de cha
Pour le moment ce code n'est que une petite partie du jeu car il reste encore beaucoup de travail à faire ! Pour la suite il faudra attendre la semaine prochaine,
A bientôt !


Comment assembler ses tableaux ?
Une nouvelle variable tableau va prendre des valeurs de 1 à 7,
à la fin du premier tableau, tableau = 2
on va créer une méthode spécifique à chaques tableaux : Void tableau 1() } ...
{
De même pour les autres tableaux
Pour appeller chaques méthodes dans le draw :
if(tableau==2) { tableau2();