User prompt
Make background for game
User prompt
Tea leaf dont drop
User prompt
Fix
User prompt
I Doesn't move tea tln
User prompt
I dont move tea
User prompt
Dont move tea
User prompt
Fix
User prompt
Make a kettle game we try put in the kette tea
User prompt
Make a kettle game we try put in the kette tea
User prompt
Tea Time Troubles
Initial prompt
Make a kettle game we try put in the kette tea
/****
* Classes
****/
// Kettle class: represents the kettle at the bottom of the screen
var Kettle = Container.expand(function () {
var self = Container.call(this);
// Attach an ellipse asset for the kettle
var kettle = self.attachAsset('kettle', {
anchorX: 0.5,
anchorY: 0.5
});
kettle.width = 320;
kettle.height = 180;
// Kettle moves horizontally
self.speed = 10;
self.lastX = self.x;
// Update method for movement
self.update = function () {
self.lastX = self.x;
self.x += self.speed;
// Bounce at screen edges
if (self.x > 2048 - 160) {
self.x = 2048 - 160;
self.speed *= -1;
}
if (self.x < 160) {
self.x = 160;
self.speed *= -1;
}
};
return self;
});
// TeaLeaf class: represents a falling tea leaf
var TeaLeaf = Container.expand(function () {
var self = Container.call(this);
// Attach a small ellipse asset for the leaf
var leaf = self.attachAsset('teaLeaf', {
anchorX: 0.5,
anchorY: 0.5
});
leaf.width = 32;
leaf.height = 32;
// Physics properties
self.vx = 0;
self.vy = 0;
self.lastY = self.y;
self.landed = false;
// Update method for falling
self.update = function () {
self.lastY = self.y;
// Gravity
self.vy += 1.2;
self.x += self.vx;
self.y += self.vy;
};
return self;
});
// Create and position the tea tin at the top center
// TeaTin class: represents the tea tin at the top of the screen
var TeaTin = Container.expand(function () {
var self = Container.call(this);
// Attach a box asset for the tin
var tin = self.attachAsset('teaTin', {
anchorX: 0.5,
anchorY: 0.5
});
// Set initial size and color
tin.width = 200;
tin.height = 120;
// Track tilt direction: -1 (left), 0 (center), 1 (right)
self.tilt = 0;
// Track lastX for movement events
self.lastX = self.x;
// Method to tilt left
self.tiltLeft = function () {
self.tilt = -1;
};
// Method to tilt right
self.tiltRight = function () {
self.tilt = 1;
};
// Method to center
self.tiltCenter = function () {
self.tilt = 0;
};
// Update method for movement
self.update = function () {
self.lastX = self.x;
// Move tin left/right if tilted
if (self.tilt === -1 && self.x > 120) {
self.x -= 20;
} else if (self.tilt === 1 && self.x < 2048 - 120) {
self.x += 20;
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 // No title, no description
});
/****
* Game Code
****/
// Create and position the tea tin at the top center
var teaTin = new TeaTin();
teaTin.x = 2048 / 2;
teaTin.y = 200;
game.addChild(teaTin);
// Create and position the kettle at the bottom center
var kettle = new Kettle();
kettle.x = 2048 / 2;
kettle.y = 2732 - 200;
game.addChild(kettle);
// Array to hold falling tea leaves
var teaLeaves = [];
// Score text
var score = 0;
var scoreTxt = new Text2('0', {
size: 120,
fill: "#fff"
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Pouring state
var pouring = false;
var pourInterval = null;
// Helper to start pouring
function startPouring() {
if (!pouring) {
pouring = true;
pourInterval = LK.setInterval(function () {
// Create a new tea leaf at the tin's spout
var leaf = new TeaLeaf();
leaf.x = teaTin.x;
leaf.y = teaTin.y + 60;
// Give a small random horizontal velocity based on tilt
leaf.vx = teaTin.tilt * 6 + (Math.random() - 0.5) * 2;
leaf.vy = 0;
teaLeaves.push(leaf);
game.addChild(leaf);
}, 80);
}
}
// Helper to stop pouring
function stopPouring() {
pouring = false;
if (pourInterval) {
LK.clearInterval(pourInterval);
pourInterval = null;
}
}
// Touch controls: drag left/right to tilt, tap and hold to pour
game.down = function (x, y, obj) {
// If touch is on left half, tilt left; right half, tilt right
if (x < 2048 / 2) {
teaTin.tiltLeft();
} else {
teaTin.tiltRight();
}
startPouring();
};
game.up = function (x, y, obj) {
teaTin.tiltCenter();
stopPouring();
};
game.move = function (x, y, obj) {
// Update tilt based on drag position
if (x < 2048 / 2) {
teaTin.tiltLeft();
} else {
teaTin.tiltRight();
}
};
// Main game update loop
game.update = function () {
// Update tin and kettle
teaTin.update();
kettle.update();
// Update and check tea leaves
for (var i = teaLeaves.length - 1; i >= 0; i--) {
var leaf = teaLeaves[i];
leaf.update();
// Check if leaf lands in kettle (collision)
var wasIntersecting = leaf.landed;
var isIntersecting = !leaf.landed && leaf.intersects(kettle);
if (!wasIntersecting && isIntersecting) {
// Landed in kettle
leaf.landed = true;
score += 1;
scoreTxt.setText(score);
// Remove leaf after a short delay
(function (leafToRemove, idx) {
LK.setTimeout(function () {
leafToRemove.destroy();
teaLeaves.splice(idx, 1);
}, 200);
})(leaf, i);
continue;
}
// Remove leaf if it falls off screen
if (leaf.y > 2732 + 50) {
leaf.destroy();
teaLeaves.splice(i, 1);
}
}
}; ===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,211 @@
-/****
+/****
+* Classes
+****/
+// Kettle class: represents the kettle at the bottom of the screen
+var Kettle = Container.expand(function () {
+ var self = Container.call(this);
+ // Attach an ellipse asset for the kettle
+ var kettle = self.attachAsset('kettle', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ kettle.width = 320;
+ kettle.height = 180;
+ // Kettle moves horizontally
+ self.speed = 10;
+ self.lastX = self.x;
+ // Update method for movement
+ self.update = function () {
+ self.lastX = self.x;
+ self.x += self.speed;
+ // Bounce at screen edges
+ if (self.x > 2048 - 160) {
+ self.x = 2048 - 160;
+ self.speed *= -1;
+ }
+ if (self.x < 160) {
+ self.x = 160;
+ self.speed *= -1;
+ }
+ };
+ return self;
+});
+// TeaLeaf class: represents a falling tea leaf
+var TeaLeaf = Container.expand(function () {
+ var self = Container.call(this);
+ // Attach a small ellipse asset for the leaf
+ var leaf = self.attachAsset('teaLeaf', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ leaf.width = 32;
+ leaf.height = 32;
+ // Physics properties
+ self.vx = 0;
+ self.vy = 0;
+ self.lastY = self.y;
+ self.landed = false;
+ // Update method for falling
+ self.update = function () {
+ self.lastY = self.y;
+ // Gravity
+ self.vy += 1.2;
+ self.x += self.vx;
+ self.y += self.vy;
+ };
+ return self;
+});
+// Create and position the tea tin at the top center
+// TeaTin class: represents the tea tin at the top of the screen
+var TeaTin = Container.expand(function () {
+ var self = Container.call(this);
+ // Attach a box asset for the tin
+ var tin = self.attachAsset('teaTin', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ // Set initial size and color
+ tin.width = 200;
+ tin.height = 120;
+ // Track tilt direction: -1 (left), 0 (center), 1 (right)
+ self.tilt = 0;
+ // Track lastX for movement events
+ self.lastX = self.x;
+ // Method to tilt left
+ self.tiltLeft = function () {
+ self.tilt = -1;
+ };
+ // Method to tilt right
+ self.tiltRight = function () {
+ self.tilt = 1;
+ };
+ // Method to center
+ self.tiltCenter = function () {
+ self.tilt = 0;
+ };
+ // Update method for movement
+ self.update = function () {
+ self.lastX = self.x;
+ // Move tin left/right if tilted
+ if (self.tilt === -1 && self.x > 120) {
+ self.x -= 20;
+ } else if (self.tilt === 1 && self.x < 2048 - 120) {
+ self.x += 20;
+ }
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
backgroundColor: 0x000000 // No title, no description
-});
\ No newline at end of file
+});
+
+/****
+* Game Code
+****/
+// Create and position the tea tin at the top center
+var teaTin = new TeaTin();
+teaTin.x = 2048 / 2;
+teaTin.y = 200;
+game.addChild(teaTin);
+// Create and position the kettle at the bottom center
+var kettle = new Kettle();
+kettle.x = 2048 / 2;
+kettle.y = 2732 - 200;
+game.addChild(kettle);
+// Array to hold falling tea leaves
+var teaLeaves = [];
+// Score text
+var score = 0;
+var scoreTxt = new Text2('0', {
+ size: 120,
+ fill: "#fff"
+});
+scoreTxt.anchor.set(0.5, 0);
+LK.gui.top.addChild(scoreTxt);
+// Pouring state
+var pouring = false;
+var pourInterval = null;
+// Helper to start pouring
+function startPouring() {
+ if (!pouring) {
+ pouring = true;
+ pourInterval = LK.setInterval(function () {
+ // Create a new tea leaf at the tin's spout
+ var leaf = new TeaLeaf();
+ leaf.x = teaTin.x;
+ leaf.y = teaTin.y + 60;
+ // Give a small random horizontal velocity based on tilt
+ leaf.vx = teaTin.tilt * 6 + (Math.random() - 0.5) * 2;
+ leaf.vy = 0;
+ teaLeaves.push(leaf);
+ game.addChild(leaf);
+ }, 80);
+ }
+}
+// Helper to stop pouring
+function stopPouring() {
+ pouring = false;
+ if (pourInterval) {
+ LK.clearInterval(pourInterval);
+ pourInterval = null;
+ }
+}
+// Touch controls: drag left/right to tilt, tap and hold to pour
+game.down = function (x, y, obj) {
+ // If touch is on left half, tilt left; right half, tilt right
+ if (x < 2048 / 2) {
+ teaTin.tiltLeft();
+ } else {
+ teaTin.tiltRight();
+ }
+ startPouring();
+};
+game.up = function (x, y, obj) {
+ teaTin.tiltCenter();
+ stopPouring();
+};
+game.move = function (x, y, obj) {
+ // Update tilt based on drag position
+ if (x < 2048 / 2) {
+ teaTin.tiltLeft();
+ } else {
+ teaTin.tiltRight();
+ }
+};
+// Main game update loop
+game.update = function () {
+ // Update tin and kettle
+ teaTin.update();
+ kettle.update();
+ // Update and check tea leaves
+ for (var i = teaLeaves.length - 1; i >= 0; i--) {
+ var leaf = teaLeaves[i];
+ leaf.update();
+ // Check if leaf lands in kettle (collision)
+ var wasIntersecting = leaf.landed;
+ var isIntersecting = !leaf.landed && leaf.intersects(kettle);
+ if (!wasIntersecting && isIntersecting) {
+ // Landed in kettle
+ leaf.landed = true;
+ score += 1;
+ scoreTxt.setText(score);
+ // Remove leaf after a short delay
+ (function (leafToRemove, idx) {
+ LK.setTimeout(function () {
+ leafToRemove.destroy();
+ teaLeaves.splice(idx, 1);
+ }, 200);
+ })(leaf, i);
+ continue;
+ }
+ // Remove leaf if it falls off screen
+ if (leaf.y > 2732 + 50) {
+ leaf.destroy();
+ teaLeaves.splice(i, 1);
+ }
+ }
+};
\ No newline at end of file