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: 'ReferenceError: scoreText is not defined' in or related to this line: 'scoreText.setText(nouveauScore);' Line Number: 214
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'ReferenceError: scoreText is not defined' in or related to this line: 'if (scoreText) {' Line Number: 169
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'ReferenceError: scoreText is not defined' in or related to this line: 'scoreText.setText(nouveauScore);' Line Number: 169
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'ReferenceError: scoreText is not defined' in or related to this line: 'scoreText.setText(nouveauScore);' Line Number: 172
Code edit (7 edits merged)
Please save this source code
User prompt
Please fix the bug: 'ReferenceError: scoreText is not defined' in or related to this line: 'scoreText.setText(nouveauScore);' Line Number: 178
User prompt
Please fix the bug: 'ReferenceError: scoreText is not defined' in or related to this line: 'scoreText.setText(nouveauScore);' Line Number: 173
User prompt
Please fix the bug: 'ReferenceError: scoreText is not defined' in or related to this line: 'scoreText.setText(nouveauScore);' Line Number: 172
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'ReferenceError: startPoints is not defined' in or related to this line: 'var randomIndex = Math.floor(Math.random() * startPoints.length);' Line Number: 86
Code edit (1 edits merged)
Please save this source code
Initial prompt
Coco Monkey
===================================================================
--- original.js
+++ change.js
@@ -10,13 +10,20 @@
});
self.speed = 5;
self.trajectory = new Trajectory();
self.update = function () {
- self.y += self.speed;
+ if (self.trajectory.typeTrajectory == 0) {
+ self.trajectory.updateLinear();
+ }
+ if (self.trajectory.typeTrajectory == 1) {
+ self.trajectory.updateParabol();
+ }
+ self.y = self.trajectory.yCurrent;
+ self.x = self.trajectory.xCurrent;
if (self.y > 2732) {
self.destroy();
}
- };
+ }; //fin update
});
//<Assets used in the game will automatically appear here>
// Class for the Monkey
var Monkey = Container.expand(function () {
@@ -41,53 +48,74 @@
};
});
//Class for the trajectory of the coconut
//Gestion d'une trajectoire parabolique de sommet ((X1 + X2)/2, Yh)
-//et de point de départ (X1, Y0) et d'arrivée (X2, Y0) avec Y0 > Yh et X1 < X2.
+//et de point de départ (X1, Y0) et d'arrivée (X2, Y0) avec Y0 > Yh et X1 < X2 et Yh != Y0 != 0 et X1 != X2 != 0
//la fonction de mise à jour calcule la position du point suivant en fonction de speed .
-//Sachant que speed correspond à un certain nombre de ticks avant le calcul de la position suivante.
-//L'equation de la trajectoire est de la forme y = a(x - X1)(x - X2) + Yh
+//L'equation de la trajectoire est de la forme y = a(x - X1)(x - X2) + Y0 avec a = 4(Y0 - Yh)/((X1 - X2)(X1 - X2))
+//Pour la trajectoire linéaire, le point de départ est (X1, Yh) et le point d'arrivée est (X1, Y0)
+//Le temps de parcours est totalTicks que se soit pour la trajectoire linéaire ou parabolique
var Trajectory = Container.expand(function () {
var self = Container.call(this);
var trajectoryGraphics = self.attachAsset('trajectory', {
anchorX: 0.5,
anchorY: 0.5
});
+ self.typeTrajectory = 0; //0: linear, 1: parabolic
self.X1 = 0;
self.X2 = 0;
self.Y0 = 0;
self.Yh = 0;
+ self.a = 0;
self.xCurrent = 0;
self.yCurrent = 0;
- self.speed = 1;
+ self.totalTicks = 0; //Nombre total de ticks pour passer de X1 à X2
+ self.xPerTick = 0; //Distance parcourue par tick
self.isStarted = false; //Indique si la trajectoire a commencé
- self.setParameters = function (X1, X2, Y0, Yh, speed) {
+ self.setParameters = function (typeTrajectory, X1, X2, Y0, Yh, totalTicks) {
+ //Initialisation des paramètres de la trajectoire
+ self.typeTrajectory = typeTrajectory;
self.X1 = X1;
self.X2 = X2;
self.Y0 = Y0;
self.Yh = Yh;
- self.speed = speed;
- self.a = (Y0 - Yh) / ((X1 - X2) * (X1 - X2));
+ self.totalTicks = totalTicks;
}; //fin setParameters
- self.update = function () {
+ self.updateLinear = function () {
// Trajectory logic can be added here
- if (!self.isStarted) {
+ if (self.typeTrajectory == 0 && !self.isStarted) {
self.xCurrent = self.X1;
+ self.yCurrent = self.Yh;
+ var distance_per_tick = (self.X2 - self.X1) / self.totalTicks;
+ self.isStarted = true;
+ } else {
+ if (self.yCurrent < self.Y0) {
+ self.yCurrent += distance_per_tick;
+ }
+ }
+ }; //fin updateLinear
+ self.updateParabol = function () {
+ // Trajectory logic can be added here
+ if (self.typeTrajectory == 1 && !self.isStarted) {
+ self.xCurrent = self.X1;
self.yCurrent = self.Y0;
+ self.a = 4 * (self.Y0 - self.Yh) / ((self.X1 - self.X2) * (self.X1 - self.X2));
+ self.xPerTick = (self.X2 - self.X1) / self.totalTicks;
self.isStarted = true;
- var distance_per_tick = (self.X2 - self.X1) / self.speed;
} else {
if (self.xCurrent < self.X2) {
- self.xCurrent += distance_per_tick;
- self.yCurrent = self.a * (self.xCurrent - self.X1) * (self.xCurrent - self.X2) + self.Yh;
+ self.xCurrent += self.xPerTick;
+ self.yCurrent = self.a * (self.xCurrent - self.X1) * (self.xCurrent - self.X2) + self.Y0;
}
}
- }; //fin update
+ }; //fin updateParabol
});
/****
* Initialize Game
****/
+//fin class Trajectory
+//fin class Trajectory
var game = new LK.Game({
backgroundColor: 0x87CEEB // Sky blue background
});
@@ -146,8 +174,9 @@
var parasol = game.addChild(new Parasol());
parasol.x = 2048 / 2;
parasol.y = 2500;
var coconuts = [];
+var nombreCoconuts = 1;
var score = 0;
var scoreTest = 0;
/****
* Game zones and backgrounds
@@ -211,31 +240,37 @@
function chooseNextStartPoint() {
var newCoconut = new Coconut();
// Choisir aléatoirement un point de départ
var randomIndex = Math.floor(Math.random() * startPoints.length);
- newCoconut.x = startPoints[randomIndex];
- newCoconut.y = monkey.y;
+ var typeTrajectory = 0;
+ var X1 = startPoints[randomIndex];
+ var X2 = X1;
+ var Y0 = 2732;
+ var Yh = monkey.y;
+ var totalTicks = 200;
+ newCoconut.trajectory.setParameters(typeTrajectory, X1, X2, Y0, Yh, totalTicks);
coconuts.push(newCoconut);
return newCoconut;
} //fin chooseNextStartPoint
/****
* Main loop
****/
game.update = function () {
//Mise à jour score
- scoreTest = score;
updateScoreTest(scoreTest);
updateScore(score);
//Autres actions à effectuer sans urgence
if (LK.ticks % 60 == 0) {
// Créer un nouveau coco
- var newCoconut = chooseNextStartPoint();
- game.addChild(newCoconut);
+ if (coconuts.length < nombreCoconuts) {
+ var newCoconut = chooseNextStartPoint();
+ game.addChild(newCoconut);
+ }
}
for (var i = coconuts.length - 1; i >= 0; i--) {
+ scoreTest = "Type trajectoire: " + coconuts[i].trajectory.typeTrajectory;
if (coconuts[i].intersects(parasol)) {
score += 1;
- //scoreTxt.setText(score);
coconuts[i].destroy();
coconuts.splice(i, 1);
} else if (coconuts[i].y > 2732) {
LK.effects.flashScreen(0xff0000, 1000);