User prompt
objects we escape from appear in normal color
User prompt
Let the objects we avoid come 31 percent less
User prompt
The shape of the bomb we throw should be different
User prompt
let's throw a bomb
User prompt
The objects we need to escape from are coming towards us.
User prompt
Delete all text except start in the menu
User prompt
Delete rockets flying in the air
User prompt
Write Superhero Missile Dodge remix before the menu
User prompt
Add start menu
User prompt
Migrate to the latest version of LK
Remix started
Copy Superhero Missile Dodge
/**** * Classes ****/ var Bomb = Container.expand(function () { var self = Container.call(this); var bombGraphics = self.attachAsset('healthBar', { anchorX: 0.5, anchorY: 0.5 }); bombGraphics.scale.x *= 1.5; bombGraphics.scale.y *= 1.5; bombGraphics.tint = 0xffff00; // Yellow color for bomb self.speed = 12; self.targetX = 0; self.targetY = 0; self.directionX = 0; self.directionY = 0; self.setTarget = function (x, y) { self.targetX = x; self.targetY = y; var deltaX = x - self.x; var deltaY = y - self.y; var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY); self.directionX = deltaX / distance * self.speed; self.directionY = deltaY / distance * self.speed; }; self._move_migrated = function () { self.x += self.directionX; self.y += self.directionY; if (self.x > 2148 || self.x < -100 || self.y > 2832 || self.y < -100) { self.destroy(); } }; }); var Explosion = Container.expand(function () { var self = Container.call(this); var explosionGraphics = self.attachAsset('explosion', { anchorX: 0.5, anchorY: 0.5 }); explosionGraphics.scale.x *= 2; explosionGraphics.scale.y *= 2; self.duration = 30; self.tick = function () { self.duration--; if (self.duration <= 0) { self.destroy(); } }; }); var FastCloud = Container.expand(function () { var self = Container.call(this); var cloudGraphics = self.attachAsset('cloud', { anchorX: 0.5, anchorY: 0.5 }); cloudGraphics.scale.x *= 6; cloudGraphics.scale.y *= 6; self.speed = (Math.random() * 3 + 1) * 6; self._move_migrated = function () { self.x -= self.speed; if (self.x <= -cloudGraphics.width) { self.x = 2048 + cloudGraphics.width; self.y = Math.random() * 2732; } }; }); var HeroMissile = Container.expand(function () { var self = Container.call(this); var missileGraphics = self.attachAsset('missile', { anchorX: 0.5, anchorY: 0.5 }); missileGraphics.scale.x *= 2; missileGraphics.scale.y *= 2; missileGraphics.tint = 0x00ff00; self.speed = 15; self._move_migrated = function () { self.x += self.speed; if (self.x > 2148) { self.destroy(); } }; }); var MediumCloud = Container.expand(function () { var self = Container.call(this); var cloudGraphics = self.attachAsset('cloud', { anchorX: 0.5, anchorY: 0.5 }); cloudGraphics.scale.x *= 4; cloudGraphics.scale.y *= 4; self.speed = (Math.random() * 2 + 1) * 4; self._move_migrated = function () { self.x -= self.speed; if (self.x <= -cloudGraphics.width) { self.x = 2048 + cloudGraphics.width; self.y = Math.random() * 2732; } }; }); var SlowCloud = Container.expand(function () { var self = Container.call(this); var cloudGraphics = self.attachAsset('cloud', { anchorX: 0.5, anchorY: 0.5 }); cloudGraphics.scale.x *= 2; cloudGraphics.scale.y *= 2; self.speed = (Math.random() * 1 + 1) * 2; self._move_migrated = function () { self.x -= self.speed; if (self.x <= -cloudGraphics.width) { self.x = 2048 + cloudGraphics.width; self.y = Math.random() * 2732; } }; }); var Superman = Container.expand(function () { var self = Container.call(this); var supermanGraphics = self.attachAsset('superman', { anchorX: 0.5, anchorY: 0.5 }); self.hitCount = 0; self._move_migrated = function (x, y) { self.x = x; self.y = y; }; }); var Target = Container.expand(function () { var self = Container.call(this); var targetGraphics = self.attachAsset('missile', { anchorX: 0.5, anchorY: 0.5 }); targetGraphics.scale.x *= 3; targetGraphics.scale.y *= 3; self.speed = 8; self.lastX = undefined; self._move_migrated = function () { if (self.lastX === undefined) self.lastX = self.x; self.x -= self.speed; if (self.x < -100) { self.destroy(); } self.lastX = self.x; }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ game.setBackgroundColor(0x0000ff); var gameStarted = false; var startText = new Text2('START', { size: 150, fill: '#ffffff' }); startText.anchor.set(0.5, 0.5); startText.x = 2048 / 2; startText.y = 2732 / 2; game.addChild(startText); var clouds = []; for (var i = 0; i < 3; i++) { var slowCloud = new SlowCloud(); slowCloud.x = Math.random() * 2048; slowCloud.y = Math.random() * 2732; clouds.push(slowCloud); game.addChild(slowCloud); } for (var i = 0; i < 3; i++) { var mediumCloud = new MediumCloud(); mediumCloud.x = Math.random() * 2048; mediumCloud.y = Math.random() * 2732; clouds.push(mediumCloud); game.addChild(mediumCloud); } for (var i = 0; i < 3; i++) { var fastCloud = new FastCloud(); fastCloud.x = Math.random() * 2048; fastCloud.y = Math.random() * 2732; clouds.push(fastCloud); game.addChild(fastCloud); } var superman = game.addChild(new Superman()); var targets = []; var bombs = []; superman.x = 200; superman.y = 2732 / 2; var isGameOver = false; var tickOffset = 0; var gameDuration = 0; var score = 0; var scoreText = new Text2('Score: 0', { size: 100, fill: '#ffffff' }); scoreText.anchor.set(0, 0); scoreText.x = 50; scoreText.y = 50; game.addChild(scoreText); var gameDurationText = new Text2('0', { size: 150, fill: '#ffffff' }); gameDurationText.anchor.set(.5, 0); LK.gui.top.addChild(gameDurationText); LK.on('tick', function () { if (!gameStarted) { return; } if (isGameOver) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } // Move and cleanup bombs for (var b = bombs.length - 1; b >= 0; b--) { if (bombs[b]) { bombs[b]._move_migrated(); if (bombs[b].x > 2148 || bombs[b].x < -100 || bombs[b].y > 2832 || bombs[b].y < -100) { bombs[b].destroy(); bombs.splice(b, 1); } } } // Check bomb-target collisions for (var b = bombs.length - 1; b >= 0; b--) { if (bombs[b]) { for (var t = targets.length - 1; t >= 0; t--) { if (targets[t] && bombs[b].intersects(targets[t])) { // Create explosion at collision point var explosion = new Explosion(); explosion.x = targets[t].x; explosion.y = targets[t].y; game.addChild(explosion); // Destroy bomb and target bombs[b].destroy(); targets[t].destroy(); bombs.splice(b, 1); targets.splice(t, 1); // Increase score score += 10; scoreText.setText('Score: ' + score); break; } } } } // Move and cleanup targets for (var a = targets.length - 1; a >= 0; a--) { if (targets[a]) { targets[a]._move_migrated(); if (targets[a].x < -100) { targets[a].destroy(); targets.splice(a, 1); } } } // Check if targets reach superman (game over condition) for (var e = targets.length - 1; e >= 0; e--) { if (targets[e] && superman.intersects(targets[e])) { isGameOver = true; } } clouds.forEach(function (cloud) { cloud._move_migrated(); }); if (tickOffset++ % 60 == 0) { gameDuration++; gameDurationText.setText(gameDuration); } // Spawn targets more frequently as game progresses var spawnRate = Math.max(Math.floor((45 - gameDuration * 2) * 1.45), Math.floor(15 * 1.45)); if (tickOffset % spawnRate == 0) { var newTarget = new Target(); newTarget.x = 2148; newTarget.y = Math.random() * 2732; newTarget.lastX = newTarget.x; targets.push(newTarget); game.addChild(newTarget); } game.children.forEach(function (child) { if (child instanceof Explosion) { child.tick(); } }); }); var dragNode = null; game.on('down', function (x, y, obj) { if (!gameStarted) { gameStarted = true; startText.visible = false; } if (gameStarted) { // Throw bomb towards tap location var bomb = new Bomb(); bomb.x = superman.x; bomb.y = superman.y; bomb.setTarget(x, y); bombs.push(bomb); game.addChild(bomb); } dragNode = superman; }); function handleMove(obj) { if (!gameStarted) { return; } var event = obj.event; var pos = game.toLocal(event.global); if (dragNode) { dragNode._move_migrated(pos.x, pos.y); } } game.on('move', function (x, y, obj) { obj.event = obj; handleMove(obj); }); game.on('up', function (x, y, obj) { dragNode = null; });
===================================================================
--- original.js
+++ change.js
@@ -135,9 +135,8 @@
anchorY: 0.5
});
targetGraphics.scale.x *= 3;
targetGraphics.scale.y *= 3;
- targetGraphics.tint = 0xff0000;
self.speed = 8;
self.lastX = undefined;
self._move_migrated = function () {
if (self.lastX === undefined) self.lastX = self.x;
A sky with clouds, tileable Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
An explosion Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a puffy white cloud Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
pumkin bomb. In-Game asset. 2d. High contrast. No shadows
flying pixel art green goblin. In-Game asset. 2d. High contrast. No shadows
flying pixel art hero. In-Game asset. 2d. High contrast. No shadows