/**** * Classes ****/ // Prevent cloning var ChocolateBar = Container.expand(function () { var self = Container.call(this); var chocolateGraphics = self.attachAsset('chocolateBar', { anchorX: 0.5, anchorY: 0.5 }); self.draggable = false; self.on('down', function () { dragNode = self; self.melt(); }); self.melt = function () { if (this.x >= fryingPan.x - fryingPan.width / 2 && this.x <= fryingPan.x + fryingPan.width / 2 && this.y >= fryingPan.y - fryingPan.height / 2 && this.y <= fryingPan.y + fryingPan.height / 2 && !meltedChocolateBars.includes(this)) { meltedChocolateBars.push(this); LK.setScore(LK.getScore() + 1); } }; }); var FinishedHeart = Container.expand(function () { var self = Container.call(this); var finishedHeartGraphics = self.attachAsset('finishedHeart', { anchorX: 0.5, anchorY: 0.5 }); }); var FryingPan = Container.expand(function () { var self = Container.call(this); var fryingPanGraphics = self.attachAsset('fryingPan', { anchorX: 0.5, anchorY: 0.5 }); self.chocolateCount = 0; /*self.update = function () { // Check if any ChocolateBar is in contact chocolateBars.forEach(function (bar) { if (bar.x >= self.x - self.width / 2 && bar.x <= self.x + self.width / 2 && bar.y >= self.y - self.height / 2 && bar.y <= self.y + self.height / 2) { // Increase score by 1 LK.setScore(LK.getScore() + 1); // Optionally, make the chocolate bar disappear or move it away } }); };*/ }); var FryingPanChoco = Container.expand(function () { var self = Container.call(this); var fryingPanChocoGraphics = self.attachAsset('fryingPanChoco', { anchorX: 0, anchorY: 0 }); self.draggable = true; self.on('down', function () { dragNode = self; }); }); var HeartMold = Container.expand(function () { var self = Container.call(this); var moldGraphics = self.attachAsset('heartMold', { anchorX: 0.5, anchorY: 0.5 }); self.fill = function () { // Filling logic will be implemented here }; }); var HearthMoldChoco = Container.expand(function () { var self = Container.call(this); var hearthMoldChocoGraphics = self.attachAsset('hearthMoldChoco', { anchorX: 0.5, anchorY: 0.5 }); self.draggable = true; self.on('down', function () { if (dragNode == null) { dragNode = self; } }); self.on('up', function () { dragNode = null; }); self.on('move', function (obj) { if (dragNode == self) { var pos = obj.event.getLocalPosition(game); self.x = pos.x - self.width / 2; self.y = pos.y - self.height / 2; } }); }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x8B4513 // Chocolate brown background }); /**** * Game Code ****/ // Prevent cloning var finishedHeart = null; var oven = game.addChild(LK.getAsset('oven', { anchorX: 0.5, anchorY: 0.5 })); oven.x = game.width / 2; oven.y = game.height / 2; oven.visible = false; LK.on('tick', function () { if (fryingPanChoco.intersects(heartMold) && !hearthMoldChoco) { hearthMoldChoco = game.addChild(new HearthMoldChoco()); hearthMoldChoco.x = heartMold.x; hearthMoldChoco.y = heartMold.y; fryingPanChoco.visible = false; fryingPanChoco.x = -1000; // move it out of the screen fryingPanChoco.destroy(); // destroy fryingPanChoco oven.visible = true; } if (hearthMoldChoco && hearthMoldChoco.intersects(oven) && dragNode == hearthMoldChoco) { LK.setTimeout(function () { game.children.forEach(function (child) { if (child !== scoreText && child !== finishedHeart) { child.visible = false; } }); finishedHeart = game.addChild(new FinishedHeart()); finishedHeart.x = game.width / 2; finishedHeart.y = game.height / 2; finishedHeart.visible = true; LK.setTimeout(function () { LK.showGameOver(); }, 2000); }, 1000); // Delay before hiding everything } }); var meltedChocolateBars = []; var hearthMoldChoco = null; LK.on('tick', function () { scoreText.setText('Score: ' + LK.getScore()); }); var dragNode = null; var chocolateBars = []; var heartMold = game.addChild(new HeartMold()); heartMold.x = game.width / 2; heartMold.y = game.height - heartMold.height / 2; var finishedHearts = []; // Event listener for moving the chocolate bars game.on('move', function (obj) { var pos = obj.event.getLocalPosition(game); if (dragNode) { dragNode.x = pos.x - dragNode.width / 2; dragNode.y = pos.y - dragNode.height / 2; if (dragNode && typeof dragNode.melt === 'function') { dragNode.melt(); } } }); // Event listener for releasing the chocolate bars game.on('up', function (obj) { dragNode = null; }); // Event listener for baking the chocolate in the oven // Event listener for filling the heart mold heartMold.on('down', function () { heartMold.fill(); }); // Create a Text2 object to display the score var scoreText = new Text2('Score: 0', { size: 150, fill: "#ffffff", anchorX: 0.5, anchorY: 0, visible: true }); scoreText.visible = false; // Position the score text at the top center of the screen //scoreText.x = game.width / 2; // Center the score text horizontally //scoreText.y = 50; // Position the score text at the top of the screen LK.gui.top.addChild(scoreText); // Add the score text to the GUI overlay // Update the score display whenever the score changes LK.on('tick', function () { scoreText.setText('Score: ' + LK.getScore()); }); // Game tick logic LK.on('tick', function () { // Melting chocolate bars chocolateBars.forEach(function (bar, index) { if (bar.isMelted) { bar.destroy(); chocolateBars.splice(index, 1); } }); // Filling the heart mold if (heartMold.isFilled) { var finishedHeart = new FinishedHeart(); finishedHeart.x = heartMold.x; finishedHeart.y = heartMold.y; finishedHearts.push(finishedHeart); game.addChild(finishedHeart); heartMold.isFilled = false; } // Update finished hearts finishedHearts.forEach(function (heart, index) { // Any logic for finished hearts }); // Show the frying pan with chocolate and make all chocolate bars disappear when the score reaches 5 if (LK.getScore() == 5) { fryingPan.visible = false; fryingPanChoco.visible = true; // Make all chocolate bars disappear chocolateBars.forEach(function (bar) { bar.destroy(); }); chocolateBars = []; } }); var fryingPan = game.addChild(new FryingPan()); fryingPan.x = game.width / 2; fryingPan.y = game.height / 2 - 200; // Position above the fryingPanChoco var fryingPanChoco = game.addChild(new FryingPanChoco()); fryingPanChoco.x = game.width / 3; fryingPanChoco.y = game.height / 3; fryingPanChoco.visible = false; fryingPan.chocolateCount = 0; /* fryingPan.update = function () { if (this.chocolateCount == 5) { this.visible = false; fryingPanChoco.visible = true; } }; */ // Initialize chocolate bars for (var i = 0; i < 5; i++) { var chocolateBar = new ChocolateBar(); chocolateBar.x = 500 + i * (chocolateBar.width + 10); chocolateBar.y = 100; chocolateBars.push(chocolateBar); game.addChild(chocolateBar); }
/****
* Classes
****/
// Prevent cloning
var ChocolateBar = Container.expand(function () {
var self = Container.call(this);
var chocolateGraphics = self.attachAsset('chocolateBar', {
anchorX: 0.5,
anchorY: 0.5
});
self.draggable = false;
self.on('down', function () {
dragNode = self;
self.melt();
});
self.melt = function () {
if (this.x >= fryingPan.x - fryingPan.width / 2 && this.x <= fryingPan.x + fryingPan.width / 2 && this.y >= fryingPan.y - fryingPan.height / 2 && this.y <= fryingPan.y + fryingPan.height / 2 && !meltedChocolateBars.includes(this)) {
meltedChocolateBars.push(this);
LK.setScore(LK.getScore() + 1);
}
};
});
var FinishedHeart = Container.expand(function () {
var self = Container.call(this);
var finishedHeartGraphics = self.attachAsset('finishedHeart', {
anchorX: 0.5,
anchorY: 0.5
});
});
var FryingPan = Container.expand(function () {
var self = Container.call(this);
var fryingPanGraphics = self.attachAsset('fryingPan', {
anchorX: 0.5,
anchorY: 0.5
});
self.chocolateCount = 0;
/*self.update = function () {
// Check if any ChocolateBar is in contact
chocolateBars.forEach(function (bar) {
if (bar.x >= self.x - self.width / 2 && bar.x <= self.x + self.width / 2 && bar.y >= self.y - self.height / 2 && bar.y <= self.y + self.height / 2) {
// Increase score by 1
LK.setScore(LK.getScore() + 1);
// Optionally, make the chocolate bar disappear or move it away
}
});
};*/
});
var FryingPanChoco = Container.expand(function () {
var self = Container.call(this);
var fryingPanChocoGraphics = self.attachAsset('fryingPanChoco', {
anchorX: 0,
anchorY: 0
});
self.draggable = true;
self.on('down', function () {
dragNode = self;
});
});
var HeartMold = Container.expand(function () {
var self = Container.call(this);
var moldGraphics = self.attachAsset('heartMold', {
anchorX: 0.5,
anchorY: 0.5
});
self.fill = function () {
// Filling logic will be implemented here
};
});
var HearthMoldChoco = Container.expand(function () {
var self = Container.call(this);
var hearthMoldChocoGraphics = self.attachAsset('hearthMoldChoco', {
anchorX: 0.5,
anchorY: 0.5
});
self.draggable = true;
self.on('down', function () {
if (dragNode == null) {
dragNode = self;
}
});
self.on('up', function () {
dragNode = null;
});
self.on('move', function (obj) {
if (dragNode == self) {
var pos = obj.event.getLocalPosition(game);
self.x = pos.x - self.width / 2;
self.y = pos.y - self.height / 2;
}
});
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x8B4513 // Chocolate brown background
});
/****
* Game Code
****/
// Prevent cloning
var finishedHeart = null;
var oven = game.addChild(LK.getAsset('oven', {
anchorX: 0.5,
anchorY: 0.5
}));
oven.x = game.width / 2;
oven.y = game.height / 2;
oven.visible = false;
LK.on('tick', function () {
if (fryingPanChoco.intersects(heartMold) && !hearthMoldChoco) {
hearthMoldChoco = game.addChild(new HearthMoldChoco());
hearthMoldChoco.x = heartMold.x;
hearthMoldChoco.y = heartMold.y;
fryingPanChoco.visible = false;
fryingPanChoco.x = -1000; // move it out of the screen
fryingPanChoco.destroy(); // destroy fryingPanChoco
oven.visible = true;
}
if (hearthMoldChoco && hearthMoldChoco.intersects(oven) && dragNode == hearthMoldChoco) {
LK.setTimeout(function () {
game.children.forEach(function (child) {
if (child !== scoreText && child !== finishedHeart) {
child.visible = false;
}
});
finishedHeart = game.addChild(new FinishedHeart());
finishedHeart.x = game.width / 2;
finishedHeart.y = game.height / 2;
finishedHeart.visible = true;
LK.setTimeout(function () {
LK.showGameOver();
}, 2000);
}, 1000); // Delay before hiding everything
}
});
var meltedChocolateBars = [];
var hearthMoldChoco = null;
LK.on('tick', function () {
scoreText.setText('Score: ' + LK.getScore());
});
var dragNode = null;
var chocolateBars = [];
var heartMold = game.addChild(new HeartMold());
heartMold.x = game.width / 2;
heartMold.y = game.height - heartMold.height / 2;
var finishedHearts = [];
// Event listener for moving the chocolate bars
game.on('move', function (obj) {
var pos = obj.event.getLocalPosition(game);
if (dragNode) {
dragNode.x = pos.x - dragNode.width / 2;
dragNode.y = pos.y - dragNode.height / 2;
if (dragNode && typeof dragNode.melt === 'function') {
dragNode.melt();
}
}
});
// Event listener for releasing the chocolate bars
game.on('up', function (obj) {
dragNode = null;
});
// Event listener for baking the chocolate in the oven
// Event listener for filling the heart mold
heartMold.on('down', function () {
heartMold.fill();
});
// Create a Text2 object to display the score
var scoreText = new Text2('Score: 0', {
size: 150,
fill: "#ffffff",
anchorX: 0.5,
anchorY: 0,
visible: true
});
scoreText.visible = false;
// Position the score text at the top center of the screen
//scoreText.x = game.width / 2; // Center the score text horizontally
//scoreText.y = 50; // Position the score text at the top of the screen
LK.gui.top.addChild(scoreText); // Add the score text to the GUI overlay
// Update the score display whenever the score changes
LK.on('tick', function () {
scoreText.setText('Score: ' + LK.getScore());
});
// Game tick logic
LK.on('tick', function () {
// Melting chocolate bars
chocolateBars.forEach(function (bar, index) {
if (bar.isMelted) {
bar.destroy();
chocolateBars.splice(index, 1);
}
});
// Filling the heart mold
if (heartMold.isFilled) {
var finishedHeart = new FinishedHeart();
finishedHeart.x = heartMold.x;
finishedHeart.y = heartMold.y;
finishedHearts.push(finishedHeart);
game.addChild(finishedHeart);
heartMold.isFilled = false;
}
// Update finished hearts
finishedHearts.forEach(function (heart, index) {
// Any logic for finished hearts
});
// Show the frying pan with chocolate and make all chocolate bars disappear when the score reaches 5
if (LK.getScore() == 5) {
fryingPan.visible = false;
fryingPanChoco.visible = true;
// Make all chocolate bars disappear
chocolateBars.forEach(function (bar) {
bar.destroy();
});
chocolateBars = [];
}
});
var fryingPan = game.addChild(new FryingPan());
fryingPan.x = game.width / 2;
fryingPan.y = game.height / 2 - 200; // Position above the fryingPanChoco
var fryingPanChoco = game.addChild(new FryingPanChoco());
fryingPanChoco.x = game.width / 3;
fryingPanChoco.y = game.height / 3;
fryingPanChoco.visible = false;
fryingPan.chocolateCount = 0;
/*
fryingPan.update = function () {
if (this.chocolateCount == 5) {
this.visible = false;
fryingPanChoco.visible = true;
}
};
*/
// Initialize chocolate bars
for (var i = 0; i < 5; i++) {
var chocolateBar = new ChocolateBar();
chocolateBar.x = 500 + i * (chocolateBar.width + 10);
chocolateBar.y = 100;
chocolateBars.push(chocolateBar);
game.addChild(chocolateBar);
}
a chocolate bar. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a simple fraying pan. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
make the water more brown
rempli en gris
rempli le de chocolat
a simple fridge. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a chocolate hearth. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.