User prompt
Haz que cada 20 puntos no aparezca la pantalla verde
User prompt
Fruta da diez puntos cada 20 puntos nivel aunmenta
User prompt
Botón desactivar y activar musica ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Música fondo
User prompt
Haz que las nubes vallan reapareciendo ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Haz que allá nubes en toda la pantalla
User prompt
Haz que el fondo tenga nubes y arriba un sol
User prompt
Haz que el fondo sea bonito
User prompt
Haz que las balas salgan de la parte que dispara de la pistola
User prompt
Haz el score y las vidas mas pequeñas y haz que en vez de vidas haya corazones
User prompt
Haz todo mucho más grande
Code edit (1 edits merged)
Please save this source code
User prompt
Fruit Shooter
Initial prompt
Un juego que con una pistola tengas que disparar a frutas que van apareciendo de arriba de la pantalla y que la pistola se vea
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -12; self.update = function () { self.y += self.speed; }; return self; }); var Fruit = Container.expand(function (fruitType) { var self = Container.call(this); self.fruitType = fruitType || 'apple'; self.points = 10; if (self.fruitType === 'orange') { self.points = 15; } else if (self.fruitType === 'banana') { self.points = 20; } else if (self.fruitType === 'grape') { self.points = 25; } var fruitGraphics = self.attachAsset(self.fruitType, { anchorX: 0.5, anchorY: 0.5 }); self.speed = Math.random() * 3 + 2; self.update = function () { self.y += self.speed; }; return self; }); var Gun = Container.expand(function () { var self = Container.call(this); var gunGraphics = self.attachAsset('gun', { anchorX: 0.5, anchorY: 0.5 }); return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87ceeb }); /**** * Game Code ****/ // Create beautiful gradient background var gradientHeight = 2732; var gradientSteps = 20; var stepHeight = gradientHeight / gradientSteps; for (var i = 0; i < gradientSteps; i++) { var progress = i / (gradientSteps - 1); // Interpolate between warm orange/pink at top (0xff6b35) to light blue at bottom (0x87ceeb) var topColor = { r: 255, g: 107, b: 53 }; // Warm orange var bottomColor = { r: 135, g: 206, b: 235 }; // Light blue var r = Math.round(topColor.r + (bottomColor.r - topColor.r) * progress); var g = Math.round(topColor.g + (bottomColor.g - topColor.g) * progress); var b = Math.round(topColor.b + (bottomColor.b - topColor.b) * progress); var color = r << 16 | g << 8 | b; var gradientStripe = LK.getAsset('gradientStripe_' + i, { width: 2048, height: stepHeight + 2, color: color, shape: 'box' }); gradientStripe.x = 0; gradientStripe.y = i * stepHeight; game.addChild(gradientStripe); } var gun = game.addChild(new Gun()); gun.x = 2048 / 2; gun.y = 2732 - 200; var bullets = []; var fruits = []; var lives = 3; var gameSpeed = 1; var scoreTxt = new Text2('Score: 0', { size: 80, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); var livesTxt = new Text2('❤️❤️❤️', { size: 60, fill: 0xFFFFFF }); livesTxt.anchor.set(1, 0); LK.gui.topRight.addChild(livesTxt); var fruitTypes = ['apple', 'orange', 'banana', 'grape']; var fruitSpawnTimer = 0; var fruitSpawnRate = 120; function spawnFruit() { var randomType = fruitTypes[Math.floor(Math.random() * fruitTypes.length)]; var newFruit = new Fruit(randomType); newFruit.x = Math.random() * (2048 - 300) + 150; newFruit.y = -100; newFruit.speed *= gameSpeed; fruits.push(newFruit); game.addChild(newFruit); } function shootBullet() { var newBullet = new Bullet(); newBullet.x = gun.x; newBullet.y = gun.y - 50; bullets.push(newBullet); game.addChild(newBullet); LK.getSound('shoot').play(); } game.down = function (x, y, obj) { shootBullet(); }; game.move = function (x, y, obj) { gun.x = Math.max(150, Math.min(2048 - 150, x)); }; game.update = function () { fruitSpawnTimer++; if (fruitSpawnTimer >= fruitSpawnRate / gameSpeed) { spawnFruit(); fruitSpawnTimer = 0; } // Update bullets for (var i = bullets.length - 1; i >= 0; i--) { var bullet = bullets[i]; if (bullet.y < -100) { bullet.destroy(); bullets.splice(i, 1); continue; } // Check bullet-fruit collisions for (var j = fruits.length - 1; j >= 0; j--) { var fruit = fruits[j]; if (bullet.intersects(fruit)) { LK.setScore(LK.getScore() + fruit.points); scoreTxt.setText('Score: ' + LK.getScore()); LK.effects.flashObject(fruit, 0xffffff, 200); LK.getSound('hit').play(); bullet.destroy(); bullets.splice(i, 1); fruit.destroy(); fruits.splice(j, 1); break; } } } // Update fruits for (var k = fruits.length - 1; k >= 0; k--) { var fruit = fruits[k]; if (fruit.y > 2732 + 100) { lives--; var hearts = ''; for (var h = 0; h < lives; h++) { hearts += '❤️'; } livesTxt.setText(hearts); if (lives <= 0) { LK.showGameOver(); return; } fruit.destroy(); fruits.splice(k, 1); } } // Increase game speed over time if (LK.ticks % 1800 === 0) { gameSpeed += 0.2; fruitSpawnRate = Math.max(30, fruitSpawnRate - 5); } };
===================================================================
--- original.js
+++ change.js
@@ -57,8 +57,39 @@
/****
* Game Code
****/
+// Create beautiful gradient background
+var gradientHeight = 2732;
+var gradientSteps = 20;
+var stepHeight = gradientHeight / gradientSteps;
+for (var i = 0; i < gradientSteps; i++) {
+ var progress = i / (gradientSteps - 1);
+ // Interpolate between warm orange/pink at top (0xff6b35) to light blue at bottom (0x87ceeb)
+ var topColor = {
+ r: 255,
+ g: 107,
+ b: 53
+ }; // Warm orange
+ var bottomColor = {
+ r: 135,
+ g: 206,
+ b: 235
+ }; // Light blue
+ var r = Math.round(topColor.r + (bottomColor.r - topColor.r) * progress);
+ var g = Math.round(topColor.g + (bottomColor.g - topColor.g) * progress);
+ var b = Math.round(topColor.b + (bottomColor.b - topColor.b) * progress);
+ var color = r << 16 | g << 8 | b;
+ var gradientStripe = LK.getAsset('gradientStripe_' + i, {
+ width: 2048,
+ height: stepHeight + 2,
+ color: color,
+ shape: 'box'
+ });
+ gradientStripe.x = 0;
+ gradientStripe.y = i * stepHeight;
+ game.addChild(gradientStripe);
+}
var gun = game.addChild(new Gun());
gun.x = 2048 / 2;
gun.y = 2732 - 200;
var bullets = [];