User prompt
DO IT
User prompt
DO ITUΜ
User prompt
DO IT
User prompt
DO IT
User prompt
DO IT
User prompt
ADD green firework TO THE MAP TOO
User prompt
Please fix the bug: 'ReferenceError: GreenFirework is not defined' in or related to this line: 'if (self instanceof RedFirework) {' Line Number: 45
User prompt
Please fix the bug: 'ReferenceError: GreenFirework is not defined' in or related to this line: 'if (self instanceof RedFirework) {' Line Number: 45
User prompt
ADD green PARTICLE TO THE MAP TOO
User prompt
remove greenParticle asset from the game
User prompt
remove greenfirework asset from the game
User prompt
Please fix the bug: 'TypeError: self is undefined' in or related to this line: 'var particleGraphics = self.attachAsset('purpleParticle', {' Line Number: 163
User prompt
Please fix the bug: 'TypeError: self is undefined' in or related to this line: 'var particleGraphics = self.attachAsset('yellowParticle', {' Line Number: 147
User prompt
Please fix the bug: 'TypeError: self is undefined' in or related to this line: 'var particleGraphics = self.attachAsset('yellowParticle', {' Line Number: 148
User prompt
Please fix the bug: 'TypeError: self is undefined' in or related to this line: 'var particleGraphics = self.attachAsset('purpleParticle', {' Line Number: 165
User prompt
Please fix the bug: 'TypeError: particle is undefined' in or related to this line: 'particle.x = self.x;' Line Number: 54
User prompt
ADD green PARTICLE TO THE MAP TOO
User prompt
Double the number of fireworks that load to add density to your visuals
User prompt
ADD purple PARTICLE TO THE MAP TOO
User prompt
ADD yellow PARTICLE TO THE MAP TOO
User prompt
STILL NOT WORKING...
User prompt
FIX IT!!!
User prompt
ADD GREENPARTICLE TO THE MAP TOO
User prompt
ADD GREE PARTICLE TO THE MAP TOO
User prompt
DON'T STACK LOADED FIREWORKS ASSETS ON TOP OF EACH OTHER, BUT SIDE BY SIDE TO MAKE IT DENSER
/**** * Classes ****/ // 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 <= 100) { // Explode at height 100 self.explode(); } } }; self.explode = function () { self.exploded = true; 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 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 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 }); }); // 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 }); 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 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 }); }); // 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 //Init game with black background }); /**** * Game Code ****/ // Handle game updates game.update = function () { // Create new firework every 50 ticks if (LK.ticks % 50 === 0) { var firework; // Randomly decide the color of the firework var fireworkType = Math.random(); if (fireworkType < 0.33) { firework = new Firework(); } else if (fireworkType < 0.66) { firework = new RedFirework(); } else { firework = new BlueFirework(); } firework.x = LK.ticks / 50 % 2048; // Position side by side firework.y = 2732; // Bottom of the screen game.addChild(firework); } }; // Handle click event game.down = function (x, y, obj) { console.log("Game was clicked at", x, y); // 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(); } }); };
/****
* Classes
****/
// 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 <= 100) {
// Explode at height 100
self.explode();
}
}
};
self.explode = function () {
self.exploded = true;
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 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 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
});
});
// 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
});
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 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
});
});
// 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 //Init game with black background
});
/****
* Game Code
****/
// Handle game updates
game.update = function () {
// Create new firework every 50 ticks
if (LK.ticks % 50 === 0) {
var firework;
// Randomly decide the color of the firework
var fireworkType = Math.random();
if (fireworkType < 0.33) {
firework = new Firework();
} else if (fireworkType < 0.66) {
firework = new RedFirework();
} else {
firework = new BlueFirework();
}
firework.x = LK.ticks / 50 % 2048; // Position side by side
firework.y = 2732; // Bottom of the screen
game.addChild(firework);
}
};
// Handle click event
game.down = function (x, y, obj) {
console.log("Game was clicked at", x, y);
// 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();
}
});
};