Code edit (16 edits merged)
Please save this source code
User prompt
permet la découpe des gateaux 'confetti' dans le jeu principal sans altérer le mini-jeu. Reprend les memes éléments : - ajouter un CutEffect - crééer 2 minicakes
User prompt
permet la découpe des gateaux 'confetti' dans le jeu principal sans altérer le mini-jeu
User prompt
Change le nombre de nains à 20
User prompt
Joue le son youpi quand un nain attrape un minicake
User prompt
Le squashingSound doit être joué dés le début du squashing anim, pas à la fin
User prompt
Joue cut sound quand un gâteau est coupé en miniCakes
User prompt
Joue squashing sound quand un nain se fait écraser
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
User prompt
dans performImpatienceAnimation, change aléatoirement la direction du Nain (scaleX) à 1 ou -1
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Cannot set properties of undefined (setting 'performImpatienceAnimation')' in or related to this line: 'self.performImpatienceAnimation = function () {' Line Number: 1678
User prompt
ajoute une petite animation d'impatience (de petits sauts rapide) au Nain quand il est arrivé au x de son gateau cible et qu'il attend. crée une fonction dédiée dans la classe. n'utilise pas le jumpPlayed qui est pour autre chose.
User prompt
l'animation de saut doit etre faite en boucle après que le Nain ai trouvé sa cible et qu'il est arrivé à proximité du x du gateau
Code edit (15 edits merged)
Please save this source code
User prompt
ajoute une petite animation de petits sauts au Nain quand il est arrivé au x de son gateau cible et qu'il attend. crée une fonction dédiée dans la classe
Code edit (1 edits merged)
Please save this source code
Code edit (5 edits merged)
Please save this source code
User prompt
il semblerait que le x ne soit pas pris en compte pour la detection de l'ecrasement des nains : après être écrasé 1 fois ils sont écrasés meme si ils ne touchent pas de gateau : corrige cela
Code edit (1 edits merged)
Please save this source code
User prompt
pour lintersection de l'écrasement utilise boundingBox au lieu du gateau entier
Code edit (5 edits merged)
Please save this source code
User prompt
Please fix the bug: 'TypeError: cake.getChildByName is not a function' in or related to this line: 'var boundingBox = cake.getChildByName('boundingBox');' Line Number: 683
User prompt
Please fix the bug: 'TypeError: cake.getChildByName is not a function' in or related to this line: 'if (self.intersects(cake.getChildByName('boundingBox')) && self.state === 'empty') {' Line Number: 683
===================================================================
--- original.js
+++ change.js
@@ -399,9 +399,9 @@
}
}
};
self.start = function () {
- LK.setInterval(self.spawnCake, 1000);
+ LK.setInterval(self.spawnCake, 2000);
};
});
var Confetti = Container.expand(function (cakeIndex) {
var self = Container.call(this);
@@ -627,15 +627,29 @@
miniGameMiniCakes.splice(index, 1);
}
});
// Check for intersection with non-miniCakes
- if (!self.isSquashing) {
- miniGameCurrentCakes.forEach(function (cake, index) {
- if (cake.y < 2600 && self.intersects(cake.borderBox) && self.state === 'empty' && self.x >= cake.borderBox.x - cake.borderBox.width / 2 && self.x <= cake.borderBox.x + cake.borderBox.width / 2) {
- self.squashAnimation(cake);
- return;
- }
- });
+ if (self.state === 'empty' && !self.isSquashing) {
+ // Vérifier d'abord s'il y a réellement des gâteaux
+ if (miniGameCurrentCakes.length > 0) {
+ miniGameCurrentCakes.forEach(function (cake, index) {
+ // Vérifier que le gâteau existe, qu'il est dans une position valide,
+ // et que le nain n'est pas trop près du bord droit (où il vient d'être repositionné)
+ if (cake && cake.y < 2600 && self.x < 2000) {
+ // Utiliser notre méthode d'intersection personnalisée
+ if (self.intersects(cake.borderBox)) {
+ console.log("Intersection détectée avec gâteau:", {
+ nainX: self.x,
+ nainY: self.y,
+ cakeX: cake.x,
+ cakeY: cake.y
+ });
+ self.squashAnimation(cake);
+ return;
+ }
+ }
+ });
+ }
}
// Animate frames
self.animateFrames();
// Update lastX
@@ -817,19 +831,20 @@
self.currentFrame = dwarfFullFrame1.visible ? dwarfFullFrame1 : dwarfFullFrame2.visible ? dwarfFullFrame2 : dwarfEmptyFrame1.visible ? dwarfEmptyFrame1 : dwarfEmptyFrame2;
self.currentFrame.scaleX = self.speedX ? Math.sign(self.speedX) : 1;
};
self.squashAnimation = function (cake) {
- if (self.isSquashing) {
+ // Vérifier que l'animation n'est pas déjà en cours et qu'un gâteau valide est fourni
+ if (self.isSquashing || !cake) {
return;
- } // Prevent re-triggering if already squashing
+ }
self.isSquashing = true; // Set flag to indicate squash is in progress
tween(self.currentFrame, {
scaleY: 0
}, {
duration: 400,
easing: tween.easeInOut,
onFinish: function onFinish() {
- // Repositionner le nain à droite de l'écran
+ // Repositionner le nain à droite de l'écran avec une position aléatoire
self.x = 2300 + Math.floor(Math.random() * 100);
// Réinitialiser l'état du nain
self.state = 'empty';
self.targetCakeIndex = -1;
@@ -840,18 +855,23 @@
dwarfFullFrame2.visible = false;
dwarfEmptyFrame1.visible = true;
dwarfEmptyFrame2.visible = false;
// Arrêter et faire disparaître le gâteau
- cake.speedY = 0;
- tween(cake, {
- alpha: 0
- }, {
- duration: 600,
- easing: tween.easeOut,
- onFinish: function onFinish() {
- cake.destroy(); // Remove the cake after it fades out
- }
- });
+ if (cake && typeof cake.destroy === 'function') {
+ cake.speedY = 0;
+ tween(cake, {
+ alpha: 0
+ }, {
+ duration: 600,
+ easing: tween.easeOut,
+ onFinish: function onFinish() {
+ // Vérifier à nouveau que le gâteau existe toujours avant de le détruire
+ if (cake && typeof cake.destroy === 'function') {
+ cake.destroy(); // Remove the cake after it fades out
+ }
+ }
+ });
+ }
// Réinitialiser l'échelle du nain
tween(self.currentFrame, {
scaleY: 1
}, {
@@ -864,8 +884,22 @@
});
}
});
};
+ self.intersects = function (obj) {
+ // Calculer les limites du nain
+ var nainLeft = self.x - 40; // Approximation de la largeur/2
+ var nainRight = self.x + 40;
+ var nainTop = self.y - 80; // Approximation de la hauteur/2
+ var nainBottom = self.y + 80;
+ // Calculer les limites de l'objet
+ var objLeft = obj.x - obj.width / 2;
+ var objRight = obj.x + obj.width / 2;
+ var objTop = obj.y - obj.height / 2;
+ var objBottom = obj.y + obj.height / 2;
+ // Vérifier si les rectangles se chevauchent
+ return nainLeft < objRight && nainRight > objLeft && nainTop < objBottom && nainBottom > objTop;
+ };
});
var MiniCake = Container.expand(function (originalCake) {
var self = Container.call(this);
var miniCakeGraphics = self.attachAsset(originalCake.assetId, {
@@ -1401,9 +1435,9 @@
var miniGamebackground;
var switchButtonMini;
var chef;
var miniGameDwarfs = []; // Variable globale pour stocker les nains
-var miniGameDwarfCount = 3; // Nombre de nains à créer
+var miniGameDwarfCount = 1; //3; // Nombre de nains à créer
var miniGameCurrentCakes = []; // Global array to store falling cakes
var miniGameMiniCakes = []; // Global array to track mini cakes
function toggleMiniGame() {
if (isMiniGameRunning) {
a button saying 'reset'. In-Game asset. 2d. Blank background. High contrast.
enlève ça
interieure de patiserie. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
gâteau ( pas réaliste ). Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
sparkles
gâteau. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
gâteau. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
gâteau. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
dessin de toque de chef
étoile dorée toute simple comme dans les commentaires d'un site web
une patisserie (gâteau) simple. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
interieure de patiserie vide avec uniquement le sol et les murs. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
trace blanche verticale d'un effet de coup de ninja
Vue de face centrée d'une machine magique en forme de pièce montée arc-en-ciel avec une petite entrée d'alimentation en bas au milieu, un très grand hublot central et un tube transparent dirigé vers le haut.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
errorsond
Sound effect
relaxsond
Sound effect
clickSound
Sound effect
musiqueclicker
Music
buySound
Sound effect
resetSound
Sound effect
buyAutoclickerSound
Sound effect
clearedSound
Sound effect
bonusSound
Sound effect
ohoh
Sound effect
cheers
Sound effect
squashingSound
Sound effect
CutSound
Sound effect
youpi
Sound effect
canonSound
Sound effect
yeahh
Sound effect
nooo
Sound effect
machineError
Sound effect
aspire
Sound effect