Code edit (22 edits merged)
Please save this source code
User prompt
Please fix the bug: 'ReferenceError: victoireX is not defined' in or related to this line: 'var coupeVictoire = LK.getAsset('coupeVictoire', {' Line Number: 842
Code edit (1 edits merged)
Please save this source code
Code edit (3 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught ReferenceError: rocher_petit_sprite is not defined' in or related to this line: 'self.sprite = rocher_petit_sprite;' Line Number: 327
Code edit (3 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught ReferenceError: rocher_moyen_sprite is not defined' in or related to this line: 'self.sprite = rocher_moyen_sprite;' Line Number: 330
Code edit (11 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught ReferenceError: buldorock_sprite is not defined' in or related to this line: 'this.sprite = buldorock_sprite;' Line Number: 505
User prompt
Please fix the bug: 'Uncaught ReferenceError: buldorock_sprite is not defined' in or related to this line: 'this.sprite = buldorock_sprite;' Line Number: 505
Code edit (1 edits merged)
Please save this source code
Code edit (22 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught ReferenceError: coupeVictoire is not defined' in or related to this line: 'LK.gui.top.addChild(coupeVictoire);' Line Number: 1001
Code edit (1 edits merged)
Please save this source code
Code edit (12 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught TypeError: Graphics is not a constructor' in or related to this line: 'var routeZone = new Graphics();' Line Number: 292
Code edit (1 edits merged)
Please save this source code
Code edit (4 edits merged)
Please save this source code
User prompt
Manque t'il route_sprite.x *= -1;
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
Code edit (9 edits merged)
Please save this source code
User prompt
Please fix the bug: 'TypeError: rochers[i] is undefined' in or related to this line: 'if (rochers[i].isClicked) {' Line Number: 1029
Code edit (1 edits merged)
Please save this source code
Code edit (2 edits merged)
Please save this source code
===================================================================
--- original.js
+++ change.js
@@ -192,13 +192,10 @@
}
var nbRochers = 10; //nombre de rochers
var nbBuldoRocks = 0; //nombre de buldoRocks
var nbBuldoZers = 0; //nombre de buldoZers
-var delta = 1;
+var delta = 1; //Heritage des tests en PixiJS
var vitesseBuldo = 8.0; //vitesse de déplacement des buldos a vide, vitesse/2 quand ils poussent un petit rocher, vitesse/4 pour un moyen, vitesse/8 pour un gros
-var humanCamp = 1; //camp du joueur humain
-var ordiCamp = -1; //camp du joueur ordinateur
-var ancrageMedian = 0.5; //ancrage median des sprites
var buldoRockHotSpotX = 40 * 2; //hotspot X du sprite buldoRock, offset du sprite par rapport à l'ancrage
var buldoRockHotSpotY = 0; //hotspot Y du sprite buldoRock
var buldoRockBkHotSpotX = -28 * 2; //hotspot arriere du buldoRock
var buldoRockBkHotSpotY = 0;
@@ -222,16 +219,21 @@
var grosRocherDyHotLeft = 0; //hotspot Y du sprite grosRocher
var grosRocherDxHotRight = 45 * 2; //hotspot X du sprite grosRocher, offset du sprite par rapport à l'ancrage
var grosRocherDyHotRight = 0; //hotspot Y du sprite grosRocher
var timeBeforeSplit = 400; //temps en ticks avant division du rocher bloque
+var nbTicksBeforeStopFlashing = 3; //nombre de ticks avant d'arreter de clignoter
var rocher_split_sprite = game.addChild(LK.getAsset('pouf', {
anchorX: 0.5,
anchorY: 0.5
}));
var typeRotation = 1; //Type 1 = rotation
var typeLigneHtoX = 2; //Type 2 = déplacement horizontal vers une position X
var typeLigneVtoY = 3; //Type 3 = déplacement vertical vers une position Y
var typeLigneHtoR = 4; //Type 4 = déplacement horizontal vers un rocher
+var gameHasStarted = false; //Flag qui indique si le jeu a commence (premiers clics buldo puis rocher)
+var humanCamp = 1; //camp du joueur humain
+var ordiCamp = -1; //camp du joueur ordinateur
+var activeCamp = 0; //Camp selectionne par le joueur
var scoreHumain = 0;
var scoreOrdi = 0;
var scoreTest = 0; // Define scoreTest variable
var ScoreZone = {
@@ -336,14 +338,17 @@
}
if (self.tailleRocher == grosRocher) {
self.name = "Gros Rocher";
}
+ self.isClicked = false; //Flag qui indique si le rocher est clique
+ self.nbTicksSinceClicked = 0; //Nombre de ticks depuis le dernier clic
this.onClickRocherBuldo = function (buldos) {
//Action à effectuer lorsqu'on clique sur un rocher
//Récupération des coordonnées du sprite rocher cliqué
var x = this.sprite.x;
var y = this.sprite.y;
- this.sprite.tint = 0xF0D0E0; //on ajoute un filtre coloré
+ //this.sprite.tint = 0xF0D0E0; //on ajoute un filtre coloré
+ self.isClicked = true; //Le rocher est clique
//Parcours de la liste des buldos pour trouver le buldo selectionne
if (buldos) {
var buldo = null;
buldos.forEach(function (buldoCheck) {
@@ -488,9 +493,17 @@
this.angleRadiansLeft = 0.0; //Angle restant a tourner en radians
this.vitesseAngulaireDS = 2.0; //vitesse de rotation du sprite en degres par secondes
this.vitesseAngulaireRms = 0.0; //vitesse angulaire en radians par millisecondes
this.onClickBuldo = function (buldos) {
- //On commence par deselectionne tous les sprites Buldo
+ //On commence par fixer le camp actif choisi par le joueur
+ if (activeCamp == 0) {
+ activeCamp = this.camp;
+ }
+ //Puis on exclu le clic sur l'autre camp
+ if (this.camp != activeCamp) {
+ return;
+ }
+ //On deselectionne tous les sprites Buldo
for (var i = 0; i < buldos.length; i++) {
if (buldos[i].name != this.name) {
buldos[i].isSelected = false;
buldos[i].sprite.tint = 0xFFFFFF; //on enleve le filtre coloré
@@ -652,18 +665,17 @@
}
}
}; // fin deplaceVtoY
this.checkTarget = function () {
- //Meme role que checkForce mais en utilisant le tableau pushers du rocher destination
//Choix de la cible : point chaud du rocher ou point chaud arriere du Buldo (du meme camp) poussant (isPushing = true) situe avant dans le tableau pushers
var targetX = this.rocherDestination.sprite.x; //Cible principale par defaut
var dxHotSpotR = this.camp == humanCamp ? this.rocherDestination.dxHotLeftSpot : this.rocherDestination.dxHotRightSpot; //Point chaud du rocher
if (this.rocherDestination.pushers) {
var pushers = this.rocherDestination.pushers;
var pusher = null;
for (var i = 0; i < pushers.length; i++) {
if (pushers[i] != null && pushers[i] == this) {
- //Si pas de pousseur du meme camp avant dans le tableau pushers, la cible est le rocher
+ //Si pas de pousseur du meme camp avant dans le tableau pushers, la cible est le rocher (la liste des pushers est classee en permanence par ordre de distance au rocher)
break;
}
if (pushers[i] != null && pushers[i].camp == this.camp && pushers[i] != this) {
if (pushers[i].isPushing) {
@@ -854,8 +866,43 @@
}
ordonneesRestantes = ordonneesPossibles; //On stocke les ordonnees restantes pour une utilisations ulterieure
return rochers;
} //fin generateRandomRock
+function evaluateRock(rock, camp) {
+ //Fonction d'evaluation d'un rocher en fonction de sa position et de sa taille vu par un camp
+ //La valeur est la somme de sa taille/2 (1, 2 ou 4) et de sa position.
+ //On divise la route en 3 puis on attribue une valeur de 1, 2 ou 3 en fonction de la position du rocher :
+ //1 si dans le premier tiers de la route cote camps,
+ //2 si dans le deuxieme tiers de la route cote camps,
+ //3 si dans le troisieme tiers de la route cote camps)
+ var valeur = 0;
+ var tiers = RoadZone.width / 3;
+ var tiers1 = RoadZone.x + tiers;
+ var tiers2 = RoadZone.x + 2 * tiers;
+ if (camp == humanCamp) {
+ if (rock.sprite.x < tiers1) {
+ valeur = rock.tailleRocher / 2 + 1;
+ }
+ if (rock.sprite.x >= tiers1 && rock.sprite.x < tiers2) {
+ valeur = rock.tailleRocher / 2 + 2;
+ }
+ if (rock.sprite.x >= tiers2) {
+ valeur = rock.tailleRocher / 2 + 3;
+ }
+ }
+ if (camp == ordiCamp) {
+ if (rock.sprite.x < tiers1) {
+ valeur = rock.tailleRocher / 2 + 3;
+ }
+ if (rock.sprite.x >= tiers1 && rock.sprite.x < tiers2) {
+ valeur = rock.tailleRocher / 2 + 2;
+ }
+ if (rock.sprite.x >= tiers2) {
+ valeur = rock.tailleRocher / 2 + 1;
+ }
+ }
+ return valeur;
+} //fin evaluateRock
function createSingleBuldo(x, y, camp) {
//CREATION D'OBJETS A PARTIR DES SPRITES //constructor(x, y, camp)
var buldo = new Buldo(x, y, camp);
buldo.sprite.anchor.set(0.5, 0.5);
@@ -887,17 +934,19 @@
return buldo;
} //fin createSingleBuldo
function createBuldos() {
//CREATION D'OBJETS A PARTIR DES SPRITES //constructor(x, y, camp)
+ //var buldoRockTest1 = createSingleBuldo(HumanZone.x + HumanZone.width / 2, HumanZone.y + HumanZone.height / 2, humanCamp); //Position : milieu de la zone humaine, 1/2 de la hauteur
+ //var buldoRockTest2 = createSingleBuldo(HumanZone.x + HumanZone.width / 2, HumanZone.y + HumanZone.height / 4, humanCamp);
var buldoRock1 = createSingleBuldo(HumanZone.x + HumanZone.width / 2, HumanZone.y + HumanZone.height / 3, humanCamp);
- //var buldoRockTest = createSingleBuldo(HumanZone.x + HumanZone.width / 2, HumanZone.y + HumanZone.height / 2, humanCamp); //Position : milieu de la zone humaine, 1/2 de la hauteur
var buldoRock2 = createSingleBuldo(HumanZone.x + HumanZone.width / 2, HumanZone.y + 2 * HumanZone.height / 3, humanCamp);
var buldoZer1 = createSingleBuldo(ComputerZone.x + ComputerZone.width / 2, ComputerZone.y + ComputerZone.height / 3, ordiCamp);
var buldoZer2 = createSingleBuldo(ComputerZone.x + ComputerZone.width / 2, ComputerZone.y + 2 * ComputerZone.height / 3, ordiCamp);
//On stocke les objets dans un tableau
var buldos = [];
+ //buldos.push(buldoRockTest1);
+ //buldos.push(buldoRockTest2);
buldos.push(buldoRock1);
- //buldos.push(buldoRockTest);
buldos.push(buldoRock2);
buldos.push(buldoZer1);
buldos.push(buldoZer2);
//On donne un nom aux objets
@@ -960,8 +1009,18 @@
rochers[i].vitesse = rochers[i].totalForce * vitesseBuldo / rochers[i].tailleRocher; //vitesse de déplacement du rocher
if (rochers[i].isBeingPushed) {
rochers[i].checkPushed();
} //déplacement du rocher
+ if (rochers[i].isClicked) {
+ rochers[i].nbTicksSinceClicked += 1;
+ if (rochers[i].nbTicksSinceClicked >= rochers[i].nbTicksBeforeStopFlashing) {
+ rochers[i].isClicked = false;
+ rochers[i].nbTicksSinceClicked = 0;
+ rochers[i].sprite.alpha = 1;
+ } else {
+ rochers[i].sprite.alpha = Math.abs(Math.sin(LK.ticks / 5)); //Clignotement du rocher brievement lorsqu'il est cliqué
+ }
+ } //Clignotement du rocher brievement lorsqu'il est clique
}
//Gestion des rochers bloques
var rochersToDestroy = []; //Tableau des potentiels rochers a detruire
if (rochers) {
@@ -990,9 +1049,9 @@
if (rocher.tempoBlocked > timeBeforeSplit) {
//Si le rocher est bloque depuis plus de n ticks on arrete de le faire clignoter
rocher.sprite.alpha = 1;
rocher.tempoBlocked = 0;
- rocher.sprite = rocher_split_sprite;
+ //rocher.sprite = rocher_split_sprite;
rocher.sprite.x = rocher.sprite.x;
rocher.sprite.y = rocher.sprite.y;
rocher.sprite.visible = true;
rochersToDestroy.push(rocher);
A small rock
a rock without any shadow and four time smaller than the original.
Blue color
a rock is being crunched so there is smoke and peaces of rocks viewed from top.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Un trophée de victoire sous forme d'une coupe d'où s'échappe un feu d'artifice.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Red bulldozer viewed strictly from top. Top view as if we are a drone.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Remove yellow lines.