Code edit (1 edits merged)
Please save this source code
Code edit (3 edits merged)
Please save this source code
User prompt
Migrate to the latest version of LK
Code edit (1 edits merged)
Please save this source code
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'includes')' in this line: 'if (child instanceof Text2 && child.text.includes('Tap on ingredients')) {' Line Number: 76
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'setText')' in this line: 'self.parent.instructionText.setText('Good job! Bon appetit!\nGame Completed');' Line Number: 75
Code edit (4 edits merged)
Please save this source code
User prompt
Fix Bug: 'ReferenceError: instructionsText is not defined' in this line: 'instructionsText.visible = false;' Line Number: 131
Code edit (2 edits merged)
Please save this source code
User prompt
before gameover create and show an image
Code edit (1 edits merged)
Please save this source code
User prompt
when 80 cookieseaten, show gameover
User prompt
Fix Bug: 'ReferenceError: scoreManager is not defined' in this line: 'var cookie = new Cookie(scoreManager);' Line Number: 125
Code edit (1 edits merged)
Please save this source code
User prompt
Fix Bug: 'Uncaught ReferenceError: ScoreManager is not defined' in this line: 'var scoreManager = new ScoreManager();' Line Number: 180
Code edit (1 edits merged)
Please save this source code
User prompt
make a global int called cookiesEaten
User prompt
Fix Bug: 'ReferenceError: scoreText is not defined' in this line: 'scoreText.setText(self.score);' Line Number: 35
User prompt
Fix Bug: 'ReferenceError: scoreText is not defined' in this line: 'scoreText.setText(self.score);' Line Number: 35
var hsvToRgb = function (h, s, v) {
var r, g, b;
var i = Math.floor(h * 6);
var f = h * 6 - i;
var p = v * (1 - s);
var q = v * (1 - f * s);
var t = v * (1 - (1 - f) * s);
switch (i % 6) {
case 0:
(r = v, g = t, b = p);
break;
case 1:
(r = q, g = v, b = p);
break;
case 2:
(r = p, g = v, b = t);
break;
case 3:
(r = p, g = q, b = v);
break;
case 4:
(r = t, g = p, b = v);
break;
case 5:
(r = v, g = p, b = q);
break;
}
return (r * 255 << 16) + (g * 255 << 8) + b * 255;
};
var ScoreManager = Container.expand(function () {
var self = Container.call(this);
self.score = 0;
self.incrementScore = function () {
self.score++;
scoreText.setText(self.score);
};
});
var Bowl = Container.expand(function () {
var self = Container.call(this);
var bowlGraphics = self.createAsset('bowl', 'Bowl Graphics', 0, 1);
self.x = 0;
self.y = 2732 - bowlGraphics.height;
self.height = bowlGraphics.height;
self.containsPoint = function (point) {
return point.x >= this.x && point.x <= this.x + this.width && point.y >= this.y - 300 && point.y <= this.y + this.height;
};
self.hasEgg = false;
self.hasSugar = false;
self.hasButter = false;
});
var Egg = Container.expand(function () {
var self = Container.call(this);
var eggGraphics = self.createAsset('egg', 'Egg Graphics', .5, .5);
self.containsPoint = function (point) {
return point.x >= this.x - this.width / 2 && point.x <= this.x + this.width / 2 && point.y >= this.y - this.height / 2 && point.y <= this.y + this.height / 2;
};
self.crack = function () {
var crackedEggGraphics = self.createAsset('cracked_egg', 'Cracked Egg Graphics', .5, .5);
self.removeChild(eggGraphics);
self.addChild(crackedEggGraphics);
};
});
var Sugar = Container.expand(function () {
var self = Container.call(this);
var sugarGraphics = self.createAsset('sugar', 'Sugar Graphics', .5, .5);
self.containsPoint = function (point) {
return point.x >= this.x - this.width / 2 && point.x <= this.x + this.width / 2 && point.y >= this.y - this.height / 2 && point.y <= this.y + this.height / 2;
};
self.pour = function (bowl) {
var pouredSugarGraphics = self.createAsset('poured_sugar', 'Poured Sugar Graphics', .5, .5);
self.removeChild(sugarGraphics);
self.addChild(pouredSugarGraphics);
};
});
var Butter = Container.expand(function () {
var self = Container.call(this);
var butterGraphics = self.createAsset('butter', 'Butter Graphics', .5, .5);
self.containsPoint = function (point) {
return point.x >= this.x - this.width / 2 && point.x <= this.x + this.width / 2 && point.y >= this.y - this.height / 2 && point.y <= this.y + this.height / 2;
};
self.unpack = function (bowl) {
var unpackedButterGraphics = self.createAsset('unpacked_butter', 'Unpacked Butter Graphics', .5, .5);
self.removeChild(butterGraphics);
self.addChild(unpackedButterGraphics);
};
});
var Cookie = Container.expand(function (scoreManager) {
var self = Container.call(this);
self.scoreManager = scoreManager;
var cookieGraphics = self.createAsset('cookie', 'Cookie Graphics', .5, .5);
self.bake = function () {};
self.bitesLeft = 2;
self.addBiteMark = function () {
self.bitesLeft--;
if (self.bitesLeft > 0) {
var biteMarkGraphics = self.createAsset('bitemark', 'Bite Mark Graphics', .5, .5);
biteMarkGraphics.x = cookieGraphics.x;
biteMarkGraphics.y = cookieGraphics.y;
var h = 3 / 32;
var s = 0.8;
var v = 0.8;
self.removeChild(cookieGraphics);
self.addChild(biteMarkGraphics);
} else {
this.scoreManager.incrementScore();
self.destroy();
}
};
self.flyToRandomPosition = function () {
var randomX = Math.random() * 2048;
var randomY = Math.random() * (2732 / 2);
self.elasticTween = function (start, end, duration, callback) {
var delta = end - start;
var startTime = LK.ticks;
function easeInOutElastic(t, b, c, d) {
t /= d / 2;
if (t < 1) return c / 2 * Math.pow(2, 10 * (t - 1)) + b;
t--;
return c / 2 * (-Math.pow(2, -10 * t) + 2) + b;
}
LK.on('tick', function () {
var currentTime = LK.ticks - startTime;
if (currentTime < duration) {
var newPos = easeInOutElastic(currentTime, start, delta, duration);
callback(newPos);
} else {
callback(end);
LK.off('tick', this);
}
});
};
self.elasticTween(self.y, randomY, 120, function (newY) {
self.y = newY;
});
self.elasticTween(self.x, randomX, 120, function (newX) {
self.x = newX;
});
};
});
var Game = Container.expand(function () {
var self = Container.call(this);
var background = self.createAsset('background', 'Background Image', 0, 0);
background.width = 2048;
background.height = 2732;
background.alpha = 0.5;
self.addChildAt(background, 0);
var instructionText = new Text2('Tap on ingredients to add them to the bowls\nThen tap to mix, bake and eat the cookies :)', {
size: 60,
fill: '#ffdddd',
align: 'center',
dropShadow: true
});
var scoreText = new Text2('0', {
size: 150,
fill: "#ffffff",
name: 'scoreText'
});
scoreText.anchor.set(.5, 0);
LK.gui.topCenter.addChild(scoreText);
instructionText.anchor.set(0.5, 0.4);
instructionText.y = 50;
LK.gui.topCenter.addChild(instructionText);
stage.on('down', function (obj) {
var pos = obj.event.getLocalPosition(self);
bowls.forEach(function (bowl, index) {
if (bowl.containsPoint(pos) && bowl.hasEgg && bowl.hasSugar && bowl.hasButter) {
for (var j = 0; j < 10; j++) {
var cookie = new Cookie(scoreManager);
cookie.bake();
cookie.x = bowl.x + bowl.width / 2;
cookie.y = bowl.y - cookie.height / 2;
cookie.rotation = Math.random() * (Math.PI * 2);
self.addChild(cookie);
cookies.push(cookie);
cookie.flyToRandomPosition();
cookie.on('down', function () {
this.addBiteMark();
});
}
bowls[index].destroy();
bowls.splice(index, 1);
sugars[index].destroy();
sugars.splice(index, 1);
butters[index].destroy();
butters.splice(index, 1);
eggs[index].destroy();
eggs.splice(index, 1);
}
});
eggs.forEach(function (egg, index) {
if (egg.containsPoint(pos)) {
egg.crack();
var targetBowl = bowls[index % bowls.length];
egg.x = targetBowl.x + targetBowl.width / 2 + 60;
egg.y = targetBowl.y - egg.height - 50;
targetBowl.hasEgg = true;
}
});
butters.forEach(function (butter, index) {
if (butter.containsPoint(pos)) {
var targetBowl = bowls[index % bowls.length];
butter.unpack(targetBowl);
butter.x = targetBowl.x + targetBowl.width / 2 - 60;
butter.y = targetBowl.y - butter.height - 50;
targetBowl.hasButter = true;
}
});
sugars.forEach(function (sugar, index) {
if (sugar.containsPoint(pos)) {
var targetBowl = bowls[index % bowls.length];
sugar.pour();
sugar.x = targetBowl.x + targetBowl.width / 2;
sugar.y = targetBowl.y - sugar.height;
targetBowl.hasSugar = true;
}
});
});
var bowls = [];
var sugars = [];
var eggs = [];
var butters = [];
var cookies = [];
var scoreManager = new ScoreManager();
self.addChild(scoreManager);
for (var i = 0; i < 8; i++) {
var bowl = new Bowl();
bowl.x = i * (bowl.width + 10);
bowls.push(bowl);
self.addChild(bowl);
var sugar = new Sugar();
sugar.x = 200 + Math.random() * 1600;
sugar.y = 200 + Math.random() * 2032;
sugars.push(sugar);
self.addChild(sugar);
var butter = new Butter();
butter.x = 200 + Math.random() * 1600;
butter.y = 200 + Math.random() * 2032;
butters.push(butter);
self.addChild(butter);
var egg = new Egg();
egg.x = 200 + Math.random() * 1600;
egg.y = 200 + Math.random() * 2032;
eggs.push(egg);
self.addChild(egg);
}
});
egg. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
sugar in a bag. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a butter stik in its wrapper. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a pink kithen bowl. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
pile of sugar. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
cracked egg white and yolk seeping. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
soft butter stick. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A delicious plain vanilla cookie. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A delicious plain vanilla cookie, where three bites have been taken. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A cute kawaian bakery interior with strawberry tiles. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A cute girl happily eating way too many vanilla cookies. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.