/**** * Classes ****/ var ConfettiParticle = Container.expand(function () { var self = Container.call(this); var colors = [0xff0000, 0x00ff00, 0x0000ff, 0xffff00, 0xff00ff, 0x00ffff, 0xffa500, 0x4b0082, 0x800000, 0x008080, 0x000080, 0x800080, 0x808000, 0x008000, 0x0000A0, 0xA52A2A, 0x5F9EA0, 0x7FFF00, 0xD2691E, 0xFF7F50, 0xFFD700, 0xADFF2F, 0xFF69B4, 0xCD5C5C, 0x4B0082, 0x8A2BE2, 0x5F9EA0, 0x7FFF00, 0xD2691E, 0xFF7F50]; // Extended array of colors var color = colors[Math.floor(Math.random() * colors.length)]; var confettiGraphics = self.attachAsset('particle', { anchorX: 0.5, anchorY: 0.5, color: color }); self.vx = Math.random() * 2 - 1; // Random x velocity self.vy = Math.random() * 3 + 1; // Random y velocity self.alpha = Math.random() * 0.5 + 0.5; // Random initial opacity between 0.5 and 1 self.lifespan = 200; // Lifespan in ticks self.update = function () { self.x += self.vx; self.y += self.vy; self.alpha -= 1 / self.lifespan; if (--self.lifespan <= 0) { self.destroy(); } // Change color dynamically over time var newColorIndex = Math.floor(Math.random() * colors.length); confettiGraphics.tint = colors[newColorIndex]; }; }); // Class for Firework var Firework = Container.expand(function () { var self = Container.call(this); var colors = [0xff0000, 0x00ff00, 0x0000ff, 0xffff00, 0xff00ff, 0x00ffff, 0xffa500, 0x4b0082, 0x800000, 0x008080, 0x000080, 0x800080, 0x808000, 0x008000, 0x0000A0, 0xA52A2A, 0x5F9EA0, 0x7FFF00, 0xD2691E, 0xFF7F50, 0xFFD700, 0xADFF2F, 0xFF69B4, 0xCD5C5C, 0x4B0082, 0x8A2BE2, 0x5F9EA0, 0x7FFF00, 0xD2691E, 0xFF7F50]; // Extended array of colors var color = colors[Math.floor(Math.random() * colors.length)]; // Select a random color var fireworkGraphics = self.attachAsset('firework', { anchorX: 0.5, anchorY: 0.5, color: color // Apply the random color }); self.vy = -5; // Upward velocity self.exploded = false; self.update = function () { if (!self.exploded) { self.y += self.vy; if (self.y <= Math.random() * (2732 / 2)) { // Explode at a random height between the top of the map and the upper half self.explode(); } } }; self.explode = function () { self.exploded = true; LK.getSound('F1').play(); for (var i = 0; i < 100; i++) { // Create 100 particles var particle; if (self instanceof RedFirework) { particle = new RedFireworkParticle(); } else if (self instanceof BlueFirework) { particle = new PurpleFireworkParticle(); } else if (self instanceof GreenFirework) { particle = new GreenFireworkParticle(); } else if (self instanceof BlueFirework) { particle = new BlueFireworkParticle(); } else { particle = new FireworkParticle(); } particle.x = self.x; particle.y = self.y; // Add a random angle and speed to each particle var angle = Math.random() * Math.PI * 2; var speed = Math.random() * 5; particle.vx = Math.cos(angle) * speed; particle.vy = Math.sin(angle) * speed; game.addChild(particle); } self.destroy(); }; self.containsPoint = function (point) { var width = fireworkGraphics.width; var height = fireworkGraphics.height; return point.x > self.x - width / 2 && point.x < self.x + width / 2 && point.y > self.y - height / 2 && point.y < self.y + height / 2; }; }); // Class for Yellow Firework var YellowFirework = Firework.expand(function () { var self = Firework.call(this); Firework.call(this); var fireworkGraphics = this.attachAsset('yellowFirework', { anchorX: 0.5, anchorY: 0.5 }); }); // Class for Red Firework var RedFirework = Firework.expand(function () { var self = Firework.call(this); Firework.call(this); var fireworkGraphics = this.attachAsset('redFirework', { anchorX: 0.5, anchorY: 0.5 }); }); var PurpleFirework = Firework.expand(function () { var self = Firework.call(this); Firework.call(this); var fireworkGraphics = this.attachAsset('purpleFirework', { anchorX: 0.5, anchorY: 0.5 }); }); var PinkFirework = Firework.expand(function () { var self = Firework.call(this); Firework.call(this); var fireworkGraphics = this.attachAsset('pinkFirework', { anchorX: 0.5, anchorY: 0.5 }); }); var GreenFirework = Firework.expand(function () { var self = Firework.call(this); Firework.call(this); var fireworkGraphics = this.attachAsset('greenFirework', { anchorX: 0.5, anchorY: 0.5 }); }); // Class for Blue Firework var BlueFirework = Firework.expand(function () { var self = Firework.call(this); Firework.call(this); var fireworkGraphics = this.attachAsset('blueFirework', { anchorX: 0.5, anchorY: 0.5 }); }); var FireworkParticle = Container.expand(function () { var self = Container.call(this); var colors = [0xff0000, 0x00ff00, 0x0000ff, 0xffff00, 0xff00ff, 0x00ffff, 0xffa500, 0x4b0082, 0x800000, 0x008080, 0x000080, 0x800080, 0x808000, 0x008000, 0x0000A0, 0xA52A2A, 0x5F9EA0, 0x7FFF00, 0xD2691E, 0xFF7F50, 0xFFD700, 0xADFF2F, 0xFF69B4, 0xCD5C5C, 0x4B0082, 0x8A2BE2, 0x5F9EA0, 0x7FFF00, 0xD2691E, 0xFF7F50]; // Extended array of colors var color = colors[Math.floor(Math.random() * colors.length)]; // Select a random color var particleGraphics = self.attachAsset('particle', { anchorX: 0.5, anchorY: 0.5, color: color, // Apply the random color blendMode: 1 // Set blendMode to 1 for color mixing }); self.vx = Math.random() * 6 - 3; // Random x velocity self.vy = Math.random() * 6 - 3; // Random y velocity self.alpha = 1; self.lifespan = 100; // Lifespan in ticks self.update = function () { self.x += self.vx; self.y += self.vy; self.alpha -= 1 / self.lifespan; // Decrease the speed over time for a more realistic effect self.vx *= 0.99; self.vy *= 0.99; if (--self.lifespan <= 0) { self.destroy(); } }; }); // Class for Yellow Firework Particle var YellowFireworkParticle = FireworkParticle.expand(function () { var self = FireworkParticle.call(this); FireworkParticle.call(this); var particleGraphics = this.attachAsset('yellowParticle', { anchorX: 0.5, anchorY: 0.5 }); }); // Class for Red Firework Particle var RedFireworkParticle = FireworkParticle.expand(function () { var self = FireworkParticle.call(this); FireworkParticle.call(this); var particleGraphics = this.attachAsset('redParticle', { anchorX: 0.5, anchorY: 0.5 }); }); var PurpleFireworkParticle = FireworkParticle.expand(function () { var self = FireworkParticle.call(this); FireworkParticle.call(this); var particleGraphics = this.attachAsset('purpleParticle', { anchorX: 0.5, anchorY: 0.5 }); }); var PinkFireworkParticle = FireworkParticle.expand(function () { var self = FireworkParticle.call(this); FireworkParticle.call(this); var particleGraphics = self.attachAsset('pinkParticle', { anchorX: 0.5, anchorY: 0.5 }); game.addChild(particleGraphics); }); var GreenFireworkParticle = FireworkParticle.expand(function () { var self = FireworkParticle.call(this); FireworkParticle.call(this); var particleGraphics = this.attachAsset('greenParticle', { anchorX: 0.5, anchorY: 0.5 }); }); var GoldenFireworkParticle = FireworkParticle.expand(function () { var self = FireworkParticle.call(this); FireworkParticle.call(this); var particleGraphics = this.attachAsset('yellowParticle', { anchorX: 0.5, anchorY: 0.5 }); }); // Class for Blue Firework Particle var BlueFireworkParticle = FireworkParticle.expand(function () { var self = FireworkParticle.call(this); FireworkParticle.call(this); var particleGraphics = this.attachAsset('blueParticle', { anchorX: 0.5, anchorY: 0.5 }); }); /**** * Initialize Game ****/ //<Assets used in the game will automatically appear here> //<Write imports for supported plugins here> var game = new LK.Game({ backgroundColor: 0x000000 //Set background color to black }); /**** * Game Code ****/ var wallpaper = game.addChild(LK.getAsset('wallpaper', { anchorX: 0, anchorY: 0 })); // Add HAPPY NEW YEAR title to the upper half of the map var happyNewYearText = new Text2('HAPPY NEW YEAR', { size: 200, fill: 0xFFD700 // Golden color }); happyNewYearText.anchor.set(0.5, 0.5); // Center the anchor point happyNewYearText.x = 2048 / 2; // Center horizontally happyNewYearText.y = 2732 / 4; // Position in the upper half game.addChild(happyNewYearText); // Play rocket sound every 4 seconds LK.setInterval(function () { LK.getSound('Rocket').play(); }, 4000); // Handle game updates // Handle game updates game.update = function () { // Create new firework every 25 ticks if (LK.ticks % 25 === 0) { var firework; // Randomly decide the color of the firework var fireworkType = Math.random(); if (fireworkType < 0.2) { firework = new Firework(); } else if (fireworkType < 0.4) { firework = new RedFirework(); } else if (fireworkType < 0.6) { firework = new BlueFirework(); } else if (fireworkType < 0.7) { firework = new GreenFirework(); } else if (fireworkType < 0.8) { firework = new YellowFirework(); } else if (fireworkType < 0.9) { firework = new PurpleFirework(); } else { firework = new PinkFirework(); } firework.x = Math.random() * 2048; // Random x position firework.y = 2732; // Bottom of the screen game.addChild(firework); // Check if any firework has reached the middle of the map if (!game.explosionTriggered) { game.children.forEach(function (child) { if (child instanceof Firework && child.y <= 2732 / 2 && !child.exploded) { game.explosionTriggered = true; // Create golden particle explosion around the HAPPY NEW YEAR title for (var i = 0; i < 50; i++) { var goldenParticle = new GoldenFireworkParticle(); var angle = Math.random() * Math.PI * 2; var radius = 300; // Distance from the title goldenParticle.x = happyNewYearText.x + Math.cos(angle) * radius; goldenParticle.y = happyNewYearText.y + Math.sin(angle) * radius; goldenParticle.vx = Math.cos(angle) * 2; goldenParticle.vy = Math.sin(angle) * 2; game.addChild(goldenParticle); } // Load more golden particles randomly in the upper half of the map for (var j = 0; j < 100; j++) { var randomGoldenParticle = new GoldenFireworkParticle(); randomGoldenParticle.x = Math.random() * 2048; randomGoldenParticle.y = Math.random() * (2732 / 2); randomGoldenParticle.vx = Math.random() * 4 - 2; randomGoldenParticle.vy = Math.random() * 4 - 2; game.addChild(randomGoldenParticle); } // Create confetti rain under the HAPPY NEW YEAR title for (var k = 0; k < 200; k++) { var confettiParticle = new ConfettiParticle(); confettiParticle.x = happyNewYearText.x + Math.random() * happyNewYearText.width - happyNewYearText.width / 2; confettiParticle.y = happyNewYearText.y + 50 + Math.random() * 50; game.addChild(confettiParticle); } } }); } } }; // Handle click and swipe event game.down = function (x, y, obj) { console.log("Game was clicked at", x, y); // Store initial click position game.initialClick = { x: x, y: y }; }; game.up = function (x, y, obj) { console.log("Game was released at", x, y); // Calculate swipe distance var swipeDistance = x - game.initialClick.x; if (Math.abs(swipeDistance) > 100) { // Check if swipe is significant // Create a series of yellow particle explosions along the swipe line var numberOfExplosions = 30; for (var i = 0; i < numberOfExplosions; i++) { var explosionX = game.initialClick.x + swipeDistance / numberOfExplosions * i; var explosionY = game.initialClick.y; var yellowParticle = new YellowFireworkParticle(); yellowParticle.x = explosionX; yellowParticle.y = explosionY; game.addChild(yellowParticle); } } else { // Check if a firework was clicked game.children.forEach(function (child) { if (child instanceof Firework && !child.exploded && child.containsPoint(game.toLocal(obj.global))) { // If a firework was clicked and not exploded, explode it child.explode(); } }); // If no firework was clicked, create a new random color firework at the click position var fireworkTypes = [Firework, RedFirework, BlueFirework, YellowFirework, GreenFirework, PurpleFirework, PinkFirework]; var randomFireworkType = fireworkTypes[Math.floor(Math.random() * fireworkTypes.length)]; var newFirework = new randomFireworkType(); newFirework.x = x; newFirework.y = y; game.addChild(newFirework); } };
/****
* Classes
****/
var ConfettiParticle = Container.expand(function () {
var self = Container.call(this);
var colors = [0xff0000, 0x00ff00, 0x0000ff, 0xffff00, 0xff00ff, 0x00ffff, 0xffa500, 0x4b0082, 0x800000, 0x008080, 0x000080, 0x800080, 0x808000, 0x008000, 0x0000A0, 0xA52A2A, 0x5F9EA0, 0x7FFF00, 0xD2691E, 0xFF7F50, 0xFFD700, 0xADFF2F, 0xFF69B4, 0xCD5C5C, 0x4B0082, 0x8A2BE2, 0x5F9EA0, 0x7FFF00, 0xD2691E, 0xFF7F50]; // Extended array of colors
var color = colors[Math.floor(Math.random() * colors.length)];
var confettiGraphics = self.attachAsset('particle', {
anchorX: 0.5,
anchorY: 0.5,
color: color
});
self.vx = Math.random() * 2 - 1; // Random x velocity
self.vy = Math.random() * 3 + 1; // Random y velocity
self.alpha = Math.random() * 0.5 + 0.5; // Random initial opacity between 0.5 and 1
self.lifespan = 200; // Lifespan in ticks
self.update = function () {
self.x += self.vx;
self.y += self.vy;
self.alpha -= 1 / self.lifespan;
if (--self.lifespan <= 0) {
self.destroy();
}
// Change color dynamically over time
var newColorIndex = Math.floor(Math.random() * colors.length);
confettiGraphics.tint = colors[newColorIndex];
};
});
// Class for Firework
var Firework = Container.expand(function () {
var self = Container.call(this);
var colors = [0xff0000, 0x00ff00, 0x0000ff, 0xffff00, 0xff00ff, 0x00ffff, 0xffa500, 0x4b0082, 0x800000, 0x008080, 0x000080, 0x800080, 0x808000, 0x008000, 0x0000A0, 0xA52A2A, 0x5F9EA0, 0x7FFF00, 0xD2691E, 0xFF7F50, 0xFFD700, 0xADFF2F, 0xFF69B4, 0xCD5C5C, 0x4B0082, 0x8A2BE2, 0x5F9EA0, 0x7FFF00, 0xD2691E, 0xFF7F50]; // Extended array of colors
var color = colors[Math.floor(Math.random() * colors.length)]; // Select a random color
var fireworkGraphics = self.attachAsset('firework', {
anchorX: 0.5,
anchorY: 0.5,
color: color // Apply the random color
});
self.vy = -5; // Upward velocity
self.exploded = false;
self.update = function () {
if (!self.exploded) {
self.y += self.vy;
if (self.y <= Math.random() * (2732 / 2)) {
// Explode at a random height between the top of the map and the upper half
self.explode();
}
}
};
self.explode = function () {
self.exploded = true;
LK.getSound('F1').play();
for (var i = 0; i < 100; i++) {
// Create 100 particles
var particle;
if (self instanceof RedFirework) {
particle = new RedFireworkParticle();
} else if (self instanceof BlueFirework) {
particle = new PurpleFireworkParticle();
} else if (self instanceof GreenFirework) {
particle = new GreenFireworkParticle();
} else if (self instanceof BlueFirework) {
particle = new BlueFireworkParticle();
} else {
particle = new FireworkParticle();
}
particle.x = self.x;
particle.y = self.y;
// Add a random angle and speed to each particle
var angle = Math.random() * Math.PI * 2;
var speed = Math.random() * 5;
particle.vx = Math.cos(angle) * speed;
particle.vy = Math.sin(angle) * speed;
game.addChild(particle);
}
self.destroy();
};
self.containsPoint = function (point) {
var width = fireworkGraphics.width;
var height = fireworkGraphics.height;
return point.x > self.x - width / 2 && point.x < self.x + width / 2 && point.y > self.y - height / 2 && point.y < self.y + height / 2;
};
});
// Class for Yellow Firework
var YellowFirework = Firework.expand(function () {
var self = Firework.call(this);
Firework.call(this);
var fireworkGraphics = this.attachAsset('yellowFirework', {
anchorX: 0.5,
anchorY: 0.5
});
});
// Class for Red Firework
var RedFirework = Firework.expand(function () {
var self = Firework.call(this);
Firework.call(this);
var fireworkGraphics = this.attachAsset('redFirework', {
anchorX: 0.5,
anchorY: 0.5
});
});
var PurpleFirework = Firework.expand(function () {
var self = Firework.call(this);
Firework.call(this);
var fireworkGraphics = this.attachAsset('purpleFirework', {
anchorX: 0.5,
anchorY: 0.5
});
});
var PinkFirework = Firework.expand(function () {
var self = Firework.call(this);
Firework.call(this);
var fireworkGraphics = this.attachAsset('pinkFirework', {
anchorX: 0.5,
anchorY: 0.5
});
});
var GreenFirework = Firework.expand(function () {
var self = Firework.call(this);
Firework.call(this);
var fireworkGraphics = this.attachAsset('greenFirework', {
anchorX: 0.5,
anchorY: 0.5
});
});
// Class for Blue Firework
var BlueFirework = Firework.expand(function () {
var self = Firework.call(this);
Firework.call(this);
var fireworkGraphics = this.attachAsset('blueFirework', {
anchorX: 0.5,
anchorY: 0.5
});
});
var FireworkParticle = Container.expand(function () {
var self = Container.call(this);
var colors = [0xff0000, 0x00ff00, 0x0000ff, 0xffff00, 0xff00ff, 0x00ffff, 0xffa500, 0x4b0082, 0x800000, 0x008080, 0x000080, 0x800080, 0x808000, 0x008000, 0x0000A0, 0xA52A2A, 0x5F9EA0, 0x7FFF00, 0xD2691E, 0xFF7F50, 0xFFD700, 0xADFF2F, 0xFF69B4, 0xCD5C5C, 0x4B0082, 0x8A2BE2, 0x5F9EA0, 0x7FFF00, 0xD2691E, 0xFF7F50]; // Extended array of colors
var color = colors[Math.floor(Math.random() * colors.length)]; // Select a random color
var particleGraphics = self.attachAsset('particle', {
anchorX: 0.5,
anchorY: 0.5,
color: color,
// Apply the random color
blendMode: 1 // Set blendMode to 1 for color mixing
});
self.vx = Math.random() * 6 - 3; // Random x velocity
self.vy = Math.random() * 6 - 3; // Random y velocity
self.alpha = 1;
self.lifespan = 100; // Lifespan in ticks
self.update = function () {
self.x += self.vx;
self.y += self.vy;
self.alpha -= 1 / self.lifespan;
// Decrease the speed over time for a more realistic effect
self.vx *= 0.99;
self.vy *= 0.99;
if (--self.lifespan <= 0) {
self.destroy();
}
};
});
// Class for Yellow Firework Particle
var YellowFireworkParticle = FireworkParticle.expand(function () {
var self = FireworkParticle.call(this);
FireworkParticle.call(this);
var particleGraphics = this.attachAsset('yellowParticle', {
anchorX: 0.5,
anchorY: 0.5
});
});
// Class for Red Firework Particle
var RedFireworkParticle = FireworkParticle.expand(function () {
var self = FireworkParticle.call(this);
FireworkParticle.call(this);
var particleGraphics = this.attachAsset('redParticle', {
anchorX: 0.5,
anchorY: 0.5
});
});
var PurpleFireworkParticle = FireworkParticle.expand(function () {
var self = FireworkParticle.call(this);
FireworkParticle.call(this);
var particleGraphics = this.attachAsset('purpleParticle', {
anchorX: 0.5,
anchorY: 0.5
});
});
var PinkFireworkParticle = FireworkParticle.expand(function () {
var self = FireworkParticle.call(this);
FireworkParticle.call(this);
var particleGraphics = self.attachAsset('pinkParticle', {
anchorX: 0.5,
anchorY: 0.5
});
game.addChild(particleGraphics);
});
var GreenFireworkParticle = FireworkParticle.expand(function () {
var self = FireworkParticle.call(this);
FireworkParticle.call(this);
var particleGraphics = this.attachAsset('greenParticle', {
anchorX: 0.5,
anchorY: 0.5
});
});
var GoldenFireworkParticle = FireworkParticle.expand(function () {
var self = FireworkParticle.call(this);
FireworkParticle.call(this);
var particleGraphics = this.attachAsset('yellowParticle', {
anchorX: 0.5,
anchorY: 0.5
});
});
// Class for Blue Firework Particle
var BlueFireworkParticle = FireworkParticle.expand(function () {
var self = FireworkParticle.call(this);
FireworkParticle.call(this);
var particleGraphics = this.attachAsset('blueParticle', {
anchorX: 0.5,
anchorY: 0.5
});
});
/****
* Initialize Game
****/
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
var game = new LK.Game({
backgroundColor: 0x000000 //Set background color to black
});
/****
* Game Code
****/
var wallpaper = game.addChild(LK.getAsset('wallpaper', {
anchorX: 0,
anchorY: 0
}));
// Add HAPPY NEW YEAR title to the upper half of the map
var happyNewYearText = new Text2('HAPPY NEW YEAR', {
size: 200,
fill: 0xFFD700 // Golden color
});
happyNewYearText.anchor.set(0.5, 0.5); // Center the anchor point
happyNewYearText.x = 2048 / 2; // Center horizontally
happyNewYearText.y = 2732 / 4; // Position in the upper half
game.addChild(happyNewYearText);
// Play rocket sound every 4 seconds
LK.setInterval(function () {
LK.getSound('Rocket').play();
}, 4000);
// Handle game updates
// Handle game updates
game.update = function () {
// Create new firework every 25 ticks
if (LK.ticks % 25 === 0) {
var firework;
// Randomly decide the color of the firework
var fireworkType = Math.random();
if (fireworkType < 0.2) {
firework = new Firework();
} else if (fireworkType < 0.4) {
firework = new RedFirework();
} else if (fireworkType < 0.6) {
firework = new BlueFirework();
} else if (fireworkType < 0.7) {
firework = new GreenFirework();
} else if (fireworkType < 0.8) {
firework = new YellowFirework();
} else if (fireworkType < 0.9) {
firework = new PurpleFirework();
} else {
firework = new PinkFirework();
}
firework.x = Math.random() * 2048; // Random x position
firework.y = 2732; // Bottom of the screen
game.addChild(firework);
// Check if any firework has reached the middle of the map
if (!game.explosionTriggered) {
game.children.forEach(function (child) {
if (child instanceof Firework && child.y <= 2732 / 2 && !child.exploded) {
game.explosionTriggered = true;
// Create golden particle explosion around the HAPPY NEW YEAR title
for (var i = 0; i < 50; i++) {
var goldenParticle = new GoldenFireworkParticle();
var angle = Math.random() * Math.PI * 2;
var radius = 300; // Distance from the title
goldenParticle.x = happyNewYearText.x + Math.cos(angle) * radius;
goldenParticle.y = happyNewYearText.y + Math.sin(angle) * radius;
goldenParticle.vx = Math.cos(angle) * 2;
goldenParticle.vy = Math.sin(angle) * 2;
game.addChild(goldenParticle);
}
// Load more golden particles randomly in the upper half of the map
for (var j = 0; j < 100; j++) {
var randomGoldenParticle = new GoldenFireworkParticle();
randomGoldenParticle.x = Math.random() * 2048;
randomGoldenParticle.y = Math.random() * (2732 / 2);
randomGoldenParticle.vx = Math.random() * 4 - 2;
randomGoldenParticle.vy = Math.random() * 4 - 2;
game.addChild(randomGoldenParticle);
}
// Create confetti rain under the HAPPY NEW YEAR title
for (var k = 0; k < 200; k++) {
var confettiParticle = new ConfettiParticle();
confettiParticle.x = happyNewYearText.x + Math.random() * happyNewYearText.width - happyNewYearText.width / 2;
confettiParticle.y = happyNewYearText.y + 50 + Math.random() * 50;
game.addChild(confettiParticle);
}
}
});
}
}
};
// Handle click and swipe event
game.down = function (x, y, obj) {
console.log("Game was clicked at", x, y);
// Store initial click position
game.initialClick = {
x: x,
y: y
};
};
game.up = function (x, y, obj) {
console.log("Game was released at", x, y);
// Calculate swipe distance
var swipeDistance = x - game.initialClick.x;
if (Math.abs(swipeDistance) > 100) {
// Check if swipe is significant
// Create a series of yellow particle explosions along the swipe line
var numberOfExplosions = 30;
for (var i = 0; i < numberOfExplosions; i++) {
var explosionX = game.initialClick.x + swipeDistance / numberOfExplosions * i;
var explosionY = game.initialClick.y;
var yellowParticle = new YellowFireworkParticle();
yellowParticle.x = explosionX;
yellowParticle.y = explosionY;
game.addChild(yellowParticle);
}
} else {
// Check if a firework was clicked
game.children.forEach(function (child) {
if (child instanceof Firework && !child.exploded && child.containsPoint(game.toLocal(obj.global))) {
// If a firework was clicked and not exploded, explode it
child.explode();
}
});
// If no firework was clicked, create a new random color firework at the click position
var fireworkTypes = [Firework, RedFirework, BlueFirework, YellowFirework, GreenFirework, PurpleFirework, PinkFirework];
var randomFireworkType = fireworkTypes[Math.floor(Math.random() * fireworkTypes.length)];
var newFirework = new randomFireworkType();
newFirework.x = x;
newFirework.y = y;
game.addChild(newFirework);
}
};