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
@@ -81,9 +81,9 @@
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;
+ //scoreTest = "typeTrajectory: " + typeTrajectory + " X1: " + self.X1 + " X2: " + self.X2 + " Y0: " + self.Y0 + " Yh: " + self.Yh + " totalTicks: " + self.totalTicks;
}; //fin setParameters
self.updateLinear = function () {
// Trajectory logic can be added here
var lastY = self.y;
@@ -209,8 +209,10 @@
var coconuts = [];
var nombreCoconuts = 1;
var sommetParaboleHaute = ScoreZone.height + 200;
var sommetParaboleBasse = ScoreZone.height + 400;
+var nbTicksToBounceHight = 500;
+var nbTicksTobounceLow = 500;
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
/****
@@ -298,9 +300,9 @@
newCoconut.trajectory.setParameters(typeTrajectory, X1, X2, Y0, Yh, totalTicks);
coconuts.push(newCoconut);
return newCoconut;
} //fin chooseNextStartPoint
-//Fonction checkPosition : donne la position XL, XC, ou XR la plus proche de la position x
+//Fonction checkPosition : donne la position XL, XC, ou XR la plus proche de la position x du parasol
function checkPosition(x) {
var deltaX = Math.abs(x - XL);
var deltaY = Math.abs(x - XC);
var deltaZ = Math.abs(x - XR);
@@ -315,8 +317,23 @@
Xreturn = XR;
}
return Xreturn;
} //fin checkPosition
+//Fonction zoneIntersectParasol: renvoie la zone du parasol qui intersecte le coconut (PL=parasol.width/3, PC=2*PL, PR=3*PL)
+function zoneIntersectParasol(coconut) {
+ var zone = -1;
+ var deltaX = Math.abs(coconut.x - parasol.x);
+ if (deltaX <= parasol.width / 3) {
+ zone = XL;
+ }
+ if (deltaX > parasol.width / 3 && deltaX <= 2 * parasol.width / 3) {
+ zone = XC;
+ }
+ if (deltaX > 2 * parasol.width / 3) {
+ zone = XR;
+ }
+ return zone;
+} //fin zoneIntersectParasol
//Fonction changeTrajectory: change la trajectoire d'un coconut en fonction de la position du parasol en XL, XC ou XR (position de startPoints)
//Si la position du parasol est en XL le coconut rebondit aléatoirement :
// - vers la gauche, donc vers l'extérieur de l'écran
// - vers la droite, donc vers la zone centrale avec une parabole de somment sommetParaboleHaute
@@ -330,50 +347,58 @@
// - vers la droite, donc vers l'extérieur de l'écran
// - vers la gauche, donc vers la zone centrale avec une parabole de somment sommetParaboleHaute
// - vers l'extrême gauche, donc vers la zone de gauche avec une parabole de somment sommetParaboleBasse
function changeTrajectory(coconut) {
- //var randomIndex = Math.floor(Math.random() * 3);
- var randomIndex = 1;
+ var randomIndex = Math.floor(Math.random() * 3);
var Xposition = checkPosition(parasol.x);
var deltaX = Math.abs(coconut.x - Xposition);
if (Xposition == XL) {
if (randomIndex == 0) {
//vers la gauche, sortie de l'écran
- coconut.trajectory.setParameters(1, coconut.x, -XL - deltaX, coconut.y, sommetParaboleHaute, 500);
+ coconut.trajectory.setParameters(1, coconut.x, -XL - deltaX, coconut.y, sommetParaboleHaute, nbTicksToBounceHight);
}
if (randomIndex == 1) {
//vers le centre, parabole haute
- coconut.trajectory.setParameters(1, coconut.x, XC - deltaX, coconut.y, sommetParaboleHaute, 500);
+ coconut.trajectory.setParameters(1, coconut.x, XC - deltaX, coconut.y, sommetParaboleHaute, nbTicksToBounceHight);
}
if (randomIndex == 2) {
//vers l'extrême droite, parabole basse
- coconut.trajectory.setParameters(1, coconut.x, XR - deltaX, coconut.y, sommetParaboleBasse, 500);
+ coconut.trajectory.setParameters(1, coconut.x, XR - deltaX, coconut.y, sommetParaboleBasse, nbTicksTobounceLow);
}
}
if (Xposition == XC) {
+ //randomIndex = Math.floor(Math.random() * 4);
+ randomIndex = 2;
if (randomIndex == 0) {
- coconut.trajectory.setParameters(1, coconut.x, XC + deltaX, coconut.y, sommetParaboleHaute, 500);
+ //vers la gauche, parabole haute
+ coconut.trajectory.setParameters(1, coconut.x, XL + deltaX, coconut.y, sommetParaboleHaute, nbTicksToBounceHight);
}
if (randomIndex == 1) {
- coconut.trajectory.setParameters(1, coconut.x, XL + deltaX, coconut.y, sommetParaboleHaute, 500);
+ //vers la gauche, sortie d'ecran
+ coconut.trajectory.setParameters(1, coconut.x, -XL + deltaX, coconut.y, sommetParaboleBasse, nbTicksTobounceLow);
}
if (randomIndex == 2) {
- coconut.trajectory.setParameters(1, coconut.x, XL, coconut.y, sommetParaboleBasse, 500);
+ //Vers la droite, parabole haute
+ coconut.trajectory.setParameters(1, coconut.x, XR - deltaX, coconut.y, sommetParaboleHaute, nbTicksToBounceHight);
}
+ if (randomIndex == 3) {
+ //Vers la droite, sortie d'ecran
+ coconut.trajectory.setParameters(1, coconut.x, XR + 2 * XL - deltaX, coconut.y, sommetParaboleBasse, nbTicksTobounceLow);
+ }
}
if (Xposition == XR) {
if (randomIndex == 0) {
//vers la droite, sortie de l'écran
- coconut.trajectory.setParameters(1, coconut.x, XR + 2 * XL - deltaX, coconut.y, sommetParaboleHaute, 500);
+ coconut.trajectory.setParameters(1, coconut.x, XR + 2 * XL - deltaX, coconut.y, sommetParaboleHaute, nbTicksToBounceHight);
}
if (randomIndex == 1) {
//vers le centre, parabole haute
- coconut.trajectory.setParameters(1, coconut.x, XR + deltaX, coconut.y, sommetParaboleHaute, 500);
+ coconut.trajectory.setParameters(1, coconut.x, XC + deltaX, coconut.y, sommetParaboleHaute, nbTicksToBounceHight);
}
//beta.frvr.ai/creator/P1fQaUz3am#
https: if (randomIndex == 2) {
//vers l'extrême gauche, parabole basse
- coconut.trajectory.setParameters(1, coconut.x, XL + deltaX, coconut.y, sommetParaboleBasse, 500);
+ coconut.trajectory.setParameters(1, coconut.x, XL + deltaX, coconut.y, sommetParaboleBasse, nbTicksTobounceLow);
}
}
} //fin changeTrajectory
/****
@@ -396,8 +421,9 @@
}
//Check if a coconut has touched the parasol et changement de trajectoire
for (var i = coconuts.length - 1; i >= 0; i--) {
if (coconuts[i].intersects(parasol) && coconuts[i].isFalling) {
+ scoreTest = "Zone contact = " + zoneIntersectParasol(coconuts[i]);
score += 1;
coconuts[i].isFalling = false;
var deltaX = Math.abs(coconuts[i].x - XL);
//coconuts[i].trajectory.setParameters(1, coconuts[i].x, XC - deltaX, coconuts[i].y, sommetParaboleHaute, 500);