evilben74 Posted August 16, 2014 Share Posted August 16, 2014 Hello, I try to make this game : http://www.youtube.com/watch?v=7t3qfK6mP64 here's my code ://debug phase : 95%//plus qu'a faire des piques sur les cotés !var game = new Phaser.Game(350, 500, Phaser.AUTO, 'game_div');var direction = 220;var compteur = 0;var mort = false;var ecrireScore;var goLeft, goRight;var groupePiqueGauche, groupePiqueDroit;//equivalent d'un main en C++ ou Cvar main_state ={ preload: function() { //couleur de fond ==> backgroundColor this.game.stage.backgroundColor = "#d7d7d7"; //charger l'image du piaf this.game.load.spritesheet('piaf', 'images/spriteSheet.png',26, 19, 7 ); this.game.load.image('spikes', 'images/pikes.png'); this.game.load.image('under_spikes', 'images/pikes_down.png'); this.game.load.image('murDroit', 'images/mur.png'); this.game.load.image('murGauche', 'images/mur.png'); this.game.load.image('piqueG', 'images/piques.png'); this.game.load.image('piqueD', 'images/piquesD.png'); //le son ! //this.game.load.audio('rourou', 'audio/pigeon.mp3'); //this.game.load.audio('flap', 'audio/flap.mp3'); }, create: function() { //chargement des paramètres de physique du jeu => arcade game.physics.startSystem(Phaser.Physics.ARCADE); //this.truc = this.game.add.sprite(positionX, positionY, 'truc'); this.piaf = this.game.add.sprite(game.world.centerX, game.world.centerY, 'piaf');//je centre mon piaf au debut du jeu //je nomme l'animation de mon sprite piaf this.piaf.animations.add('vol'); this.spikes = this.game.add.sprite(0, 470, 'spikes'); this.under_spikes = this.game.add.sprite(0, 0, 'under_spikes'); this.murDroit = this.game.add.sprite(game.width-5, 0, 'murDroit'); this.murGauche = this.game.add.sprite(-27, 0, 'murGauche'); this.piqueG = this.game.add.sprite(-50, -50, 'piqueG'); this.piqueD = this.game.add.sprite(-50, -50, 'piqueD'); var sprite = this.piaf; var spikes = this.spikes; var under_spikes = this.under_spikes; var murDroit = this.murDroit; var murGauche = this.murGauche; var piqueG = this.piqueG; var piqueD = this.piqueD; //ajout des physiques a mes images game.physics.enable([sprite, spikes, under_spikes, murDroit, murGauche, piqueG, piqueD], Phaser.Physics.ARCADE); murDroit.enableBody = true; murGauche.enableBody = true; spikes.enableBody = true; under_spikes.enableBody = true; sprite.enableBody = true; piqueG.enableBody = true; piqueD.enableBody = true; murDroit.body.immovable = true; murGauche.body.immovable = true; spikes.body.immovable = true; under_spikes.body.immovable = true; piqueG.body.immovale = true; piqueG.body.immovale = true; //redimensionnement de mon sprite / image de piaf qui est un poil petit sprite.scale.setTo(1.3, 1.3); //je centre l'ancre de mon piaf au centre de son sprite sprite.anchor.setTo(0.5, 0.5); //une variable clique qui correspond au clique de ma souris var clique = this.game.input; //lors d'un, on lance la fonction jump clique.onDown.add(this.jump, this); //space_key.onDown.add(this.jump, this); //attribution d'une vélocité linéaire horizontale sprite.body.velocity.x = direction; //ajout des bords physique du cadre sprite.body.collideWorldBounds = true; //influence de la gravité sur mon pigeon sprite.body.gravity.set(0, 1000); //ajout de la puissance de rebond sur les bords //sprite.body.bounce.set(1,0); sprite.body.bounce.x = 1; //j'empeche les rebonds sur les cotés haut et bas game.physics.arcade.checkCollision.down = false; game.physics.arcade.checkCollision.up = false; //prepapration de la zone de texte du score ecrireScore = game.add.text(game.world.centerX, game.world.height, " ", {font:"20px Arial", fill:"#ff0000"}); ecrireScore.anchor.setTo(0.5, 1);//ajustement du texte par rapport à la zone de jeu //un peu de son au demarrage //var sonRourou = this.game.add.audio('rourou'); //sonRourou.play('rourou'); }, update: function() //equivalent d'un RequestAnimFrame = optimisation cadence affichage { //je redefini mes variables var sprite = this.piaf; var spikes = this.spikes; var under_spikes = this.under_spikes; var murDroit = this.murDroit; var murGauche = this.murGauche; var piqueG = this.piqueG; var piqueD = this.piqueD; //check des superposition de mes images => hitboxes if(game.physics.arcade.collide(sprite, murDroit, null, null, this)) { compteur++; ecrireScore.setText(compteur+" pts"); sprite.scale.x *= -1; //goLeft = true; this.generationPiqueGauche(); //this.groupePiqueDroit.destroy(); } else if(game.physics.arcade.collide(sprite, murGauche, null, null, this)) { compteur++; ecrireScore.setText(compteur+" pts"); sprite.scale.x *= -1; //goRight = true; this.generationPiqueDroite(); //this.groupePiqueGauche.destroy(); } else if(game.physics.arcade.collide(sprite, spikes, null, null, this) || game.physics.arcade.collide(sprite, under_spikes, null, null, this)) { this.gameOver(); } else if(game.physics.arcade.collide(sprite, piqueG, null, null, this) || game.physics.arcade.collide(sprite, piqueD, null, null, this)) { this.gameOver(); } var touche = this.game.input.keyboard.addKey(Phaser.Keyboard.SPACEBAR); //je regarde si mon piaf est mort pour qu'au prochain clic, je relance le jeu if(mort == true) { if(touche.isDown)//game.input.mousePointer.isDown { this.restart_game(); mort = false; } } }, gameOver: function() { this.piaf.body.velocity.x = 0 ; //des petit message pour l'optimisation graphique du jeu sous forme de variables var t = game.add.text(game.world.centerX, game.world.centerY, "vous êtes mort\n Score : " + compteur + "pts\nAppuyez sur 'Espace'", {font: "30px Arial", align:"center"}); t.anchor.setTo(0.5, 0.5);//je cnetre mon text par rapport a la zone de jeu mort = true; }, jump : function() { var sprite = this.piaf; sprite.body.velocity.y = -300; sprite.animations.play('vol', 30, true); }, restart_game : function() { this.piaf.kill(); document.getElementById("message").innerHTML = ""; compteur = 0; this.game.state.start('main'); }, generationPiqueDroite : function() { groupePiqueDroit = this.game.add.group(); var randomD = Math.floor(Math.random()*9); for(var i = 0 ; i = randomD ; i++) { groupePiqueDroit.create(this.game.world.width - 3, game.world.randomY, 'piqueD'); } }, generationPiqueGauche : function() { groupePiqueGauche = this.game.add.group(); var randomG = Math.floor(Math.random()*9); for(var j = 0 ; j = randomG ; j++) { groupePiqueGauche.create(3, game.world.randomY, 'piqueG'); } }};//demarrage du jeugame.state.add('main', main_state);game.state.start('main');and i'm having some trouble because when i launch my code with wamp, my google chrome nav' crashed. have you got any ideas ? the last functions i made are the 'generationPiqueGauche()' and 'generationPiqueDroite' ... thanks Link to comment Share on other sites More sharing options...
lewster32 Posted August 16, 2014 Share Posted August 16, 2014 for(var j = 0 ; j = randomG ; j++)Should befor(var j = 0 ; j < randomG ; j++)As otherwise it'll cause an infinite loop. Also be aware that = means assign, you should be using == or === for comparisons. clark 1 Link to comment Share on other sites More sharing options...
evilben74 Posted August 18, 2014 Author Share Posted August 18, 2014 thanks ! Link to comment Share on other sites More sharing options...
Recommended Posts