Code edit (2 edits merged)
Please save this source code
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'anchorX')' in or related to this line: 'monkeyAsset = self.attachAsset(newAssetId, {' Line Number: 69
Code edit (4 edits merged)
Please save this source code
User prompt
Please fix the bug: 'TypeError: Cannot set properties of undefined (setting 'anchorX')' in or related to this line: 'monkey.monkeyAsset.anchorX = 0.91;' Line Number: 421
Code edit (2 edits merged)
Please save this source code
User prompt
Please fix the bug: 'ReferenceError: initialAsset is not defined' in or related to this line: 'self.removeChild(initialAsset);' Line Number: 66
Code edit (1 edits merged)
Please save this source code
Code edit (8 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot set properties of undefined (setting 'x')' in or related to this line: 'monkey.sprite.x = 2048 / 2;' Line Number: 246
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
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: 'ReferenceError: oconutsInTree is not defined' in or related to this line: 'oconutsInTree.push(newCoconut);' Line Number: 338
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
Code edit (19 edits merged)
Please save this source code
User prompt
Please fix the bug: 'ReferenceError: coconut is not defined' in or related to this line: 'scoreTest = "Zone contact = " + zoneIntersectParasol(coconut[i]);' Line Number: 434
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
Code edit (16 edits merged)
Please save this source code
User prompt
Please fix the bug: 'TypeError: livesLeftGraphics[i] is undefined' in or related to this line: 'livesLeftGraphics[i].destroy();' Line Number: 264
Code edit (1 edits merged)
Please save this source code
===================================================================
--- original.js
+++ change.js
@@ -13,8 +13,9 @@
self.Xintercept = 0; //Abscisse d'interception du coconut avec le parasol
self.Yintercept = 0; //Ordonnée d'interception du coconut avec le parasol
self.trajectory = new Trajectory();
self.update = function () {
+ scoreTest = "trajectory.isFalling: " + self.trajectory.isFalling;
if (self.trajectory.typeTrajectory == -1) {
self.trajectory.updateStatic();
}
if (self.trajectory.typeTrajectory == 0) {
@@ -25,8 +26,9 @@
}
self.y = self.trajectory.y;
self.x = self.trajectory.x;
self.isFalling = self.trajectory.isFalling;
+ scoreTest += " / self.isFalling: " + self.isFalling;
if (self.y > 2732) {
self.destroy();
}
}; //fin update
@@ -86,25 +88,33 @@
self.Y0 = Y0;
self.Yh = Yh;
self.totalTicks = totalTicks;
self.isStarted = false;
- //scoreTest = "typeTrajectory: " + typeTrajectory + " X1: " + self.X1 + " X2: " + self.X2 + " Y0: " + self.Y0 + " Yh: " + self.Yh + " totalTicks: " + self.totalTicks;
- }; //fin setParameters
- self.updateStatic = function () {
if (self.typeTrajectory == -1) {
self.x = self.X1;
self.y = self.Y0;
}
+ if (self.typeTrajectory == 0) {
+ self.x = self.X1;
+ self.y = self.Yh;
+ distPerTick = (self.Y0 - self.Yh) / self.totalTicks;
+ }
+ if (self.typeTrajectory == 1) {
+ self.x = self.X1;
+ self.y = self.Y0;
+ self.a = 4 * (self.Y0 - self.Yh) / ((self.X1 - self.X2) * (self.X1 - self.X2));
+ self.distPerTick = (self.X2 - self.X1) / self.totalTicks;
+ }
+ //scoreTest = "typeTrajectory: " + typeTrajectory + " X1: " + self.X1 + " X2: " + self.X2 + " Y0: " + self.Y0 + " Yh: " + self.Yh + " totalTicks: " + self.totalTicks;
+ }; //fin setParameters
+ self.updateStatic = function () {
+ var lastY = self.y;
+ self.isFalling = lastY < self.y;
}; //fin updateStatic
self.updateLinear = function () {
// Trajectory logic can be added here
var lastY = self.y;
- if (self.typeTrajectory == 0 && !self.isStarted) {
- self.x = self.X1;
- self.y = self.Yh;
- distPerTick = (self.Y0 - self.Yh) / self.totalTicks;
- self.isStarted = true;
- } else {
+ if (self.isStarted) {
if (self.y < self.Y0) {
self.y += distPerTick;
//scoreTest = "x= " + self.x + " y= " + self.y + " distPerTick= " + self.distPerTick;
}
@@ -114,16 +124,9 @@
self.updateParabol = function () {
//scoreTest += 1;
// Trajectory logic can be added here
var lastY = self.y;
- if (self.typeTrajectory == 1 && !self.isStarted) {
- self.x = self.X1;
- self.y = self.Y0;
- self.a = 4 * (self.Y0 - self.Yh) / ((self.X1 - self.X2) * (self.X1 - self.X2));
- self.distPerTick = (self.X2 - self.X1) / self.totalTicks;
- self.isStarted = true;
- //scoreTest = "x= " + self.x + " y= " + self.y + " a= " + self.a + " distPerTick= " + self.distPerTick;
- } else {
+ if (self.isStarted) {
self.x += self.distPerTick;
self.y = self.a * (self.x - self.X1) * (self.x - self.X2) + self.Y0;
//scoreTest = "x= " + self.x + " y= " + self.y + " a= " + self.a + " distPerTick= " + self.distPerTick;
}
@@ -221,14 +224,14 @@
parasol.x = 2048 / 2;
parasol.y = OptionsZone.y - 400;
var coconutsInTree = []; //Tableau des coconuts dans les arbres
var coconuts = []; //Tableau des coconuts en mouvement
-var nombreCoconuts = 1; //Nombre de coconuts en mouvement en même temps
+var nombreCoconuts = 15; //Nombre de coconuts en mouvement en même temps
var sommetParaboleHaute = ScoreZone.height + 200;
var sommetParaboleBasse = ScoreZone.height + 400;
var nbTicksToBounceHight = 500;
var nbTicksTobounceLow = 500;
-var nbTicksBeforeThrow = 400;
+var nbTicksBeforeThrow = 200;
var nbTicksLeftBeforeNextThrow = 0;
var score = 0;
var scoreTest = 0;
var startPoints = [XL = game.width / 4, XC = game.width / 2, XR = 3 * game.width / 4]; // Define the startPoints array
@@ -325,11 +328,11 @@
// Choisir aléatoirement un point de départ
var randomIndex = Math.floor(Math.random() * startPoints.length);
var randomDeltaX = Math.floor(Math.random() * 100) - 50;
var randomDeltaY = Math.floor(Math.random() * 100) - 50;
- var typeTrajectory = -1;
- //var X1 = startPoints[randomIndex] + randomDeltaX;
- var X1 = startPoints[1];
+ var typeTrajectory = -1; //Trajectoire statique
+ var X1 = startPoints[randomIndex] + randomDeltaX;
+ //var X1 = startPoints[1];
var X2 = X1;
var Y0 = monkeyLevel + randomDeltaY;
var Yh = Y0;
var totalTicks = 0;
@@ -364,9 +367,9 @@
function chooseNextCoconut() {
var randomIndex = Math.floor(Math.random() * coconutsInTree.length);
var newCoconut = coconutsInTree[randomIndex];
coconutsInTree.splice(randomIndex, 1);
- var typeTrajectory = 0;
+ var typeTrajectory = 0; //Trajectoire linéaire
newCoconut.isFalling = true;
var X1 = newCoconut.x;
var X2 = X1;
var Y0 = groundLevel;
@@ -510,50 +513,19 @@
//scoreTest = livesLeft;
//scoreTest = "Coconuts restantes: " + coconuts.length;
updateScoreTest(scoreTest);
updateScore(score);
- //Autres actions à effectuer sans urgence
- if (LK.ticks % 60 == 0) {
- //Afficher les coeurs
- setLivesLeft();
- // Récupérer un coconut dans les arbres et le faire tomber si possible
- if (coconutsInTree.length > 0 && nbTicksLeftBeforeNextThrow <= 0) {
- var newCoconut = chooseNextCoconut();
- game.addChild(newCoconut);
- nbTicksLeftBeforeNextThrow = nbTicksBeforeThrow;
- } else {
- nbTicksLeftBeforeNextThrow -= 60;
- }
- }
- //Check if a coconut has touched the parasol et changement de trajectoire
- for (var i = coconuts.length - 1; i >= 0; i--) {
- var deltaX = Math.abs(coconuts[i].x - parasol.x);
- var deltaY = parasol.y - coconuts[i].y;
- var isCloseEnough = deltaY > 0 && deltaY < 150;
- if (coconuts[i].intersects(parasol) && coconuts[i].isFalling && deltaX < parasol.width / 2 && isCloseEnough) {
- coconuts[i].Xintercept = parasol.x;
- coconuts[i].Yintercept = coconuts[i].y;
- score += 10;
- coconuts[i].isFalling = false;
- var bouncingSoundList = ['bouncing1', 'bouncing2', 'bouncing3'];
- var bouncingSound = bouncingSoundList[Math.floor(Math.random() * bouncingSoundList.length)];
- LK.getSound(bouncingSound).play();
- changeTrajectory(coconuts[i], zoneIntersectParasol(coconuts[i]));
- coconuts[i].isBouncing = true;
- }
- }
//Mise à jour des trajectoires des coconuts
for (var i = coconuts.length - 1; i >= 0; i--) {
- scoreTest = " isFalling: " + coconuts[i].isFalling + " trajectory: " + coconuts[i].trajectory.typeTrajectory;
coconuts[i].update();
}
//Vérifier si un coco a touché le sol
for (var i = coconuts.length - 1; i >= 0; i--) {
if (coconuts[i].y >= groundLevel / 2 && (coconuts[i].x < 0 || coconuts[i].x > game.width)) {
//Si le coco est sorti de l'écran sur les côtés
coconuts[i].destroy();
coconuts.splice(i, 1);
- } else if (coconuts[i].y >= groundLevel && (coconuts[i].isFalling || coconuts[i].isBouncing)) {
+ } else if (coconuts[i].y >= groundLevel) {
//Si le coco est tombé au sol
LK.effects.flashScreen(0xff0000, 1000);
coconuts[i].destroy();
coconuts.splice(i, 1);
@@ -563,5 +535,37 @@
LK.showGameOver();
}
}
}
+ //Check if a coconut has touched the parasol et changement de trajectoire
+ for (var i = coconuts.length - 1; i >= 0; i--) {
+ var deltaX = Math.abs(coconuts[i].x - parasol.x);
+ var deltaY = parasol.y - coconuts[i].y;
+ var isCloseEnough = deltaY > 0 && deltaY < 150;
+ if (coconuts[i].intersects(parasol) && coconuts[i].isFalling && deltaX < parasol.width / 2 && isCloseEnough) {
+ coconuts[i].Xintercept = parasol.x;
+ coconuts[i].Yintercept = coconuts[i].y;
+ score += 10;
+ coconuts[i].isFalling = false;
+ var bouncingSoundList = ['bouncing1', 'bouncing2', 'bouncing3'];
+ var bouncingSound = bouncingSoundList[Math.floor(Math.random() * bouncingSoundList.length)];
+ LK.getSound(bouncingSound).play();
+ changeTrajectory(coconuts[i], zoneIntersectParasol(coconuts[i]));
+ coconuts[i].trajectory.isStarted = true;
+ coconuts[i].isBouncing = true;
+ }
+ }
+ //Autres actions à effectuer sans urgence
+ if (LK.ticks % 60 == 0) {
+ //Afficher les coeurs
+ setLivesLeft();
+ // Récupérer un coconut dans les arbres et le faire tomber si l'heure est venue
+ if (coconutsInTree.length > 0 && nbTicksLeftBeforeNextThrow <= 0) {
+ var newCoconut = chooseNextCoconut();
+ newCoconut.trajectory.isStarted = true;
+ game.addChild(newCoconut);
+ nbTicksLeftBeforeNextThrow = nbTicksBeforeThrow;
+ } else {
+ nbTicksLeftBeforeNextThrow -= 60;
+ }
+ }
};
\ No newline at end of file