User prompt
When a meters get to the bottom you loose
User prompt
When you die make it were it says you high score
User prompt
Fix problems
User prompt
Make it were there are settings like how small/big the stuff is and open your mouth to shoot ↪💡 Consider importing and using the following plugins: @upit/storage.v1, @upit/facekit.v1
User prompt
Please fix the bug: 'Can't find variable: camera' in or related to this line: 'camera.setZoom(1.5);' Line Number: 80 ↪💡 Consider importing and using the following plugins: @upit/facekit.v1
User prompt
Please fix the bug: 'Can't find variable: camera' in or related to this line: 'camera.setZoom(1.5);' Line Number: 80 ↪💡 Consider importing and using the following plugins: @upit/facekit.v1
User prompt
Fix it
User prompt
Fix
User prompt
Please fix the bug: 'Can't find variable: camera' in or related to this line: 'camera.setZoom(1.5);' Line Number: 80
User prompt
Please fix the bug: 'Can't find variable: camera' in or related to this line: 'camera.setZoom(1.5);' Line Number: 80
User prompt
Make the screen closer
User prompt
Make only on type of asteroid medium
User prompt
Tap to fire
User prompt
Make it were you can move forward
Code edit (1 edits merged)
Please save this source code
User prompt
Asteroid Blaster
Initial prompt
Make a game were you shoot astroids
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var facekit = LK.import("@upit/facekit.v1"); var storage = LK.import("@upit/storage.v1", { gameScale: 1 }); /**** * Classes ****/ var Asteroid = Container.expand(function () { var self = Container.call(this); self.points = 20; var asteroidGraphics = self.attachAsset('asteroidMedium', { anchorX: 0.5, anchorY: 0.5 }); self.speed = Math.random() * 3 + 1; self.rotationSpeed = (Math.random() - 0.5) * 0.1; self.update = function () { self.y += self.speed; asteroidGraphics.rotation += self.rotationSpeed; }; return self; }); var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -8; self.update = function () { self.y += self.speed; }; return self; }); var Ship = Container.expand(function () { var self = Container.call(this); var shipGraphics = self.attachAsset('ship', { anchorX: 0.5, anchorY: 0.5 }); return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000022 }); /**** * Game Code ****/ var gameScale = storage.gameScale || 1.0; var bullets = []; var asteroids = []; var bulletTimer = 0; var asteroidTimer = 0; var asteroidSpawnRate = 90; var dragNode = null; var lastMouthOpen = false; var ship = game.addChild(new Ship()); ship.x = 2048 / 2; ship.y = 2732 - 150; ship.scaleX = gameScale; ship.scaleY = gameScale; var scoreTxt = new Text2('0', { size: 80, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); var highScoreTxt = new Text2('High Score: ' + (storage.highScore || 0), { size: 40, fill: 0xFFFFFF }); highScoreTxt.anchor.set(0.5, 0); highScoreTxt.y = 100; LK.gui.top.addChild(highScoreTxt); function spawnAsteroid() { var size = 'medium'; var asteroid = new Asteroid(); asteroid.x = Math.random() * (2048 - 100) + 50; asteroid.y = -60; asteroid.scaleX = gameScale; asteroid.scaleY = gameScale; asteroids.push(asteroid); game.addChild(asteroid); } function fireBullet() { var bullet = new Bullet(); bullet.x = ship.x; bullet.y = ship.y - 50; bullet.scaleX = gameScale; bullet.scaleY = gameScale; bullets.push(bullet); game.addChild(bullet); LK.getSound('shoot').play(); } game.move = function (x, y, obj) { if (dragNode) { dragNode.x = Math.max(40, Math.min(2048 - 40, x)); // Allow vertical movement - move forward when dragging up dragNode.y = Math.max(150, Math.min(2732 - 150, y)); } }; game.down = function (x, y, obj) { dragNode = ship; ship.x = Math.max(40, Math.min(2048 - 40, x)); // Allow initial vertical positioning when touching down ship.y = Math.max(150, Math.min(2732 - 150, y)); // Fire bullet on tap fireBullet(); }; game.up = function (x, y, obj) { dragNode = null; }; game.update = function () { bulletTimer++; asteroidTimer++; // Handle mouth shooting if (!lastMouthOpen && facekit.mouthOpen) { fireBullet(); } lastMouthOpen = facekit.mouthOpen; // Adjust game scale based on mouth opening width (simulate size setting) if (facekit.mouthOpen) { var newScale = Math.max(0.5, Math.min(2.0, 1.0 + facekit.volume * 2)); if (Math.abs(newScale - gameScale) > 0.1) { gameScale = newScale; storage.gameScale = gameScale; // Apply new scale to existing objects ship.scaleX = gameScale; ship.scaleY = gameScale; for (var s = 0; s < asteroids.length; s++) { asteroids[s].scaleX = gameScale; asteroids[s].scaleY = gameScale; } for (var t = 0; t < bullets.length; t++) { bullets[t].scaleX = gameScale; bullets[t].scaleY = gameScale; } } } // Spawn asteroids if (asteroidTimer >= asteroidSpawnRate) { spawnAsteroid(); asteroidTimer = 0; // Gradually increase difficulty if (asteroidSpawnRate > 30) { asteroidSpawnRate -= 0.5; } } // Update and check bullets for (var i = bullets.length - 1; i >= 0; i--) { var bullet = bullets[i]; if (bullet.y < -50) { bullet.destroy(); bullets.splice(i, 1); continue; } // Check bullet-asteroid collisions for (var j = asteroids.length - 1; j >= 0; j--) { var asteroid = asteroids[j]; if (bullet.intersects(asteroid)) { LK.setScore(LK.getScore() + asteroid.points); scoreTxt.setText(LK.getScore()); LK.getSound('explosion').play(); // Flash effect on hit LK.effects.flashObject(asteroid, 0xffffff, 200); bullet.destroy(); bullets.splice(i, 1); asteroid.destroy(); asteroids.splice(j, 1); break; } } } // Update and check asteroids for (var k = asteroids.length - 1; k >= 0; k--) { var asteroid = asteroids[k]; if (asteroid.y > 2732 + 100) { // Game over when asteroid reaches bottom LK.effects.flashScreen(0xff0000, 1000); // Save high score before showing game over var currentScore = LK.getScore(); var highScore = storage.highScore || 0; if (currentScore > highScore) { storage.highScore = currentScore; } LK.showGameOver(); return; } // Check ship-asteroid collision if (ship.intersects(asteroid)) { LK.effects.flashScreen(0xff0000, 1000); // Save high score before showing game over var currentScore = LK.getScore(); var highScore = storage.highScore || 0; if (currentScore > highScore) { storage.highScore = currentScore; } LK.showGameOver(); return; } } };
===================================================================
--- original.js
+++ change.js
@@ -184,11 +184,18 @@
// Update and check asteroids
for (var k = asteroids.length - 1; k >= 0; k--) {
var asteroid = asteroids[k];
if (asteroid.y > 2732 + 100) {
- asteroid.destroy();
- asteroids.splice(k, 1);
- continue;
+ // Game over when asteroid reaches bottom
+ LK.effects.flashScreen(0xff0000, 1000);
+ // Save high score before showing game over
+ var currentScore = LK.getScore();
+ var highScore = storage.highScore || 0;
+ if (currentScore > highScore) {
+ storage.highScore = currentScore;
+ }
+ LK.showGameOver();
+ return;
}
// Check ship-asteroid collision
if (ship.intersects(asteroid)) {
LK.effects.flashScreen(0xff0000, 1000);