User prompt
The explosion fragment should spawn out as a perfect circle rather than in a random direction.
User prompt
When an explosion is triggered, shoot out six explosion fragments. If an element impacts one of these fragments, it should explode as well.
User prompt
Rather than creating a large exploding have six particles spawn out from the explosion point and fly off the screen.
Initial prompt
Chain Reaction Game
/**** * Classes ****/ // Enemy class var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Enemy behavior can be added here }; }); //<Assets used in the game will automatically appear here> // Explosion class var Explosion = Container.expand(function () { var self = Container.call(this); var explosionGraphics = self.attachAsset('explosion', { anchorX: 0.5, anchorY: 0.5 }); self.radius = 50; self.expandRate = 5; self.update = function () { self.radius += self.expandRate; explosionGraphics.width = self.radius * 2; explosionGraphics.height = self.radius * 2; if (self.radius > 200) { self.destroy(); } }; }); // Explosion Fragment class var ExplosionFragment = Container.expand(function () { var self = Container.call(this); var fragmentGraphics = self.attachAsset('explosion', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.direction = Math.random() * Math.PI * 2; // Random direction in radians self.update = function () { self.x += Math.cos(self.direction) * self.speed; self.y += Math.sin(self.direction) * self.speed; }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 //Init game with black background }); /**** * Game Code ****/ // Initialize arrays and variables var explosions = []; var enemies = []; // Function to create an explosion function createExplosion(x, y) { var explosion = new Explosion(); explosion.x = x; explosion.y = y; explosions.push(explosion); game.addChild(explosion); // Create six explosion fragments for (var i = 0; i < 6; i++) { var fragment = new ExplosionFragment(); fragment.x = x; fragment.y = y; // Set the direction of each fragment to form a perfect circle fragment.direction = i * (Math.PI / 3); explosions.push(fragment); game.addChild(fragment); } } // Function to create an enemy function createEnemy(x, y) { var enemy = new Enemy(); enemy.x = x; enemy.y = y; enemies.push(enemy); game.addChild(enemy); } // Handle screen press to create an explosion game.down = function (x, y, obj) { createExplosion(x, y); }; // Update function called every game tick game.update = function () { // Update explosions for (var i = explosions.length - 1; i >= 0; i--) { explosions[i].update(); if (explosions[i].radius > 200) { explosions.splice(i, 1); } } // Check for collisions between explosions and enemies for (var j = enemies.length - 1; j >= 0; j--) { for (var k = 0; k < explosions.length; k++) { if (enemies[j].intersects(explosions[k])) { createExplosion(enemies[j].x, enemies[j].y); enemies[j].destroy(); enemies.splice(j, 1); break; } } } }; // Create initial enemies createEnemy(500, 500); createEnemy(1000, 1000); createEnemy(1500, 1500);
===================================================================
--- original.js
+++ change.js
@@ -70,8 +70,10 @@
for (var i = 0; i < 6; i++) {
var fragment = new ExplosionFragment();
fragment.x = x;
fragment.y = y;
+ // Set the direction of each fragment to form a perfect circle
+ fragment.direction = i * (Math.PI / 3);
explosions.push(fragment);
game.addChild(fragment);
}
}
Hexagonal target sprite sheet. Bright colors, cartoon. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Puzzle game background image. Lots of octagons and other interesting elements. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.