User prompt
make an launch trail object
User prompt
make a launch trail object that will spawn at the bottom of the screen and move to the location of the mouse click in 3 seconds
User prompt
spawn the fireworks 3 seconds after the mouse click
User prompt
keep one 3 fireworkobjects at the location of the mouseclick with minimal movement
User prompt
make the outer fireworks move faster
User prompt
make the firework a different color each time
User prompt
make it longer until the fireworks dissappear
Initial prompt
fireworks simulator
===================================================================
--- original.js
+++ change.js
@@ -22,8 +22,27 @@
self.destroy();
}
};
});
+// LaunchTrail class
+var LaunchTrail = Container.expand(function () {
+ var self = Container.call(this);
+ self.startX = 0;
+ self.startY = 2732; // Start at the bottom of the screen
+ self.endX = 0;
+ self.endY = 0;
+ self.progress = 0;
+ self.duration = 3000; // 3 seconds to reach the target
+ self.update = function (delta) {
+ self.progress += delta;
+ var t = Math.min(self.progress / self.duration, 1);
+ self.x = self.startX + (self.endX - self.startX) * t;
+ self.y = self.startY + (self.endY - self.startY) * t;
+ if (t === 1) {
+ self.destroy();
+ }
+ };
+});
// Firework class
var Firework = Container.expand(function () {
var self = Container.call(this);
self.particles = [];
@@ -69,16 +88,27 @@
// Event listener for mouse or touch down
game.on('down', function (obj) {
var event = obj.event;
var pos = event.getLocalPosition(game);
+ var trail = new LaunchTrail();
+ trail.startX = 1024; // Center X of the screen
+ trail.endX = pos.x;
+ trail.endY = pos.y;
+ game.addChild(trail);
LK.setTimeout(function () {
var firework = new Firework();
firework.explode(pos.x, pos.y);
fireworks.push(firework);
}, 3000);
});
// Update function for the game
LK.on('tick', function () {
+ var delta = 1000 / 60; // Assuming 60 FPS for tick
+ game.children.forEach(function (child) {
+ if (child instanceof LaunchTrail) {
+ child.update(delta);
+ }
+ });
for (var i = fireworks.length - 1; i >= 0; i--) {
fireworks[i].update();
if (fireworks[i].particles.length === 0) {
fireworks.splice(i, 1);