Bonjour , bon voila je cherche a faire un jeux vidéos et je suis bloquer au niveau du menu ( le jeux que je vais linker n'est pas celui que je vais utilisé comme projet final ). En faite mon soucis c'est quand je clique dans le menu et sur New game le jeu se lance bien mais que pendant un certain moment car en effet c'est une boucle le void menu est à nouveau utilisé donc. Désolé si je n'arrive pas a m'exprimer correctement voici mon code je reste ouvert a toute questions qui peuvent m'aider
Merci
Dernière modification par Koruya (2015-12-30 17:33:26)
Hors ligne
Bonsoir,
Afin que l'on puisse t'aider aisément, il est souhaitable d'avoir tous les fichiers à notre disposition. Il faut compresser le dossier de ton projet Processing.
DE plus, il y a un bug dans Codelab, il faut éviter les caractères accentués pour que le code puisse s'afficher.
Pour ton problème, il faut distinguer deux états. Un état de jeu et l'autre le menu. Il faut stocker ces états dans une variable booléenne.
Dans la méthode draw() on bifurque pour l'affichage en fonction de l'état.
import ddf.minim.*; // On importe une librairie nommee minim qui a pour fonction : lire un son Minim minim; // On declare la librairie permettant l'utilisation du son AudioPlayer Urban_Tough ; // On declare le fichier Urban_Tough comme un AudioPlayer PFont test; // Police creer PImage Fondmenu ; // INtegration d'une photo nommee Fondmenu int vie ; int score ; float yRaquetteG ; float dyRaquette ; float xBalle; float yBalle; float dx; // deplacement de la balle verticalement float dy ; // deplacement de la balle horizontalement boolean jeu; void setup() { size(800, 800); Fondmenu = loadImage("Terre.jpg"); // Telechargement de la photo Fondmenu test = loadFont("AlBayan-48.vlw"); // Police telecharger "Gazzarelli-48.vlw" textFont(test, 40); minim = new Minim(this); // Cette ligne est utilisee pour dire que la librairie sera utilisee dans ce sketch Urban_Tough= minim.loadFile("Urban_Tough.mp3");// Telechargement du son nomme Urban_Tough grace a minim xBalle=30 ; yBalle=height/2 ; dx=5 ; dy=-5; dyRaquette=5 ; yRaquetteG=height/2; smooth(); vie = 3 ; jeu = false; } void draw() { if (jeu) { dessineBalle (); dessineRaquette () ; rebond() ; deplaceBalle() ; deplacementRaquette(); rebondRaq () ; AfficheScore () ; AfficheVie () ; } else { menu(); souris(); } } void menu() { //Urban_Tough.play(); image(Fondmenu, 0, 0); text("new game", 300, 500); text("Chapter", 300, 600); text("Options", 300, 700); } void souris() { if (mouseX>=300 && mouseX <=560 && mouseY<=500 && mouseY>=470) { if (mouseButton == LEFT) { jeu = true; restart () ; }// Dans cette zone le curseur sera une main cursor(HAND); } else if (mouseX>=300 && mouseX <=500 && mouseY<=600 && mouseY>=570) { cursor(HAND); } else if (mouseX>=300 && mouseX <=500 && mouseY<=700 && mouseY>=670) { cursor(HAND); } else cursor(ARROW); // En dehors des trois zones le curseur sera une fleche } void stop() { // Void permettant la fin de la librairie Minim Urban_Tough.close(); minim.stop(); super.stop(); } void dessineRaquette () { rectMode (CENTER); // Ca permet a la raquette d'etre dessine par le haut rect(20, yRaquetteG, 10, 80); // la raquette gauche } void dessineBalle () { background(255, 168, 5); ellipse(xBalle, yBalle, 20, 20); } void rebond () { if (xBalle>=790 || xBalle <10) { dx=-dx ; } if (yBalle>=790 || yBalle<10) { dy=-dy ; } } void deplaceBalle() { xBalle=xBalle+dx ; // xBalle+=dx yBalle=yBalle+dy ; } void deplacementRaquette() { println(frameCount); if (keyPressed) { if (key=='s'&& yRaquetteG<=760) { yRaquetteG=yRaquetteG+dyRaquette ; } if (key=='z'&& yRaquetteG>=0) { yRaquetteG=yRaquetteG-dyRaquette ; } } } void rebondRaq() { if (xBalle<30&&yRaquetteG-40<=yBalle&&yBalle<=yRaquetteG+40) { dx=-dx ; score = score +1 ; } if (xBalle<10) { vie = vie -1 ; if (vie==0 ) { noLoop() ; text("GAME OVER ", 400, 400); } } } void AfficheScore() { fill(0); text("Score ="+score, 400, 20 ); } void AfficheVie() { fill(0); text(" vie= "+vie, 400, 780); } void restart () { // remise a zero if (xBalle<10) { yBalle =400; xBalle =30 ; yRaquetteG=height/2 ; } }
Hors ligne
OKay super merci , je ferais mes changement demain et je vous tiendrais au courant merci à vous
Hors ligne
J'ai complétement oublier de vous répondre ... Je m'en excuse et merci c'est juste superbe et j'ai bien compris
Merci pour votre temps
Hors ligne
Pages: 1