/****
* 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);
}
};