User prompt
quiero que la barra este quita, sin seguir el mouse
User prompt
quiero que haya una barra horizontal justo atras de la nave
User prompt
las rocas mas pequeñas que sean un poco mas grandes
User prompt
un poco mas pequeñas
User prompt
quiero que las torres mas grandes sean aun mas grandes
User prompt
mas grande
User prompt
quiero que la nave sea de tamaño mas grande
User prompt
quiero que las rocas bajen mas rapido, o que la nave suba mas rapido
User prompt
quiero que las rocas mas pqueñitas pasen pero por detras de la nave
User prompt
quiero que las rocas mas chiquitas no se desaparezcan cuando el jugador las toque
User prompt
quiero que las rocas mas chiquitas no hagan daño
User prompt
la barra no se ve
User prompt
quiero que la parte de atras de la vida se vea roja
User prompt
pero que se vea la vida
User prompt
mejor quiero que este abajo de score en forma horizontal
User prompt
pero la barra de vida no se ve
User prompt
agrega una barra de vida rectangular en la parte derecha
User prompt
mas larga
User prompt
ahora hazla mas larga pero por la parte superior
User prompt
colocala mas arriba
User prompt
colocala mas al medio derecho
User prompt
mas larga
User prompt
quiero que la barra sea mas larga
User prompt
quiero que la barra solo sea un rectangulo colorado por dentro de verde, y la barra de vida que es el coloreado vaya descendiendo poco a poco
User prompt
quiero que solamente se la barra, sin texto ni nada, y que sea mas facil de comprender
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Asteroid = Container.expand(function () {
var self = Container.call(this);
var asteroidGraphics = self.attachAsset('asteroid', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 2.0,
scaleY: 2.0
});
self.speed = 6 + Math.random() * 6;
self.rotationSpeed = (Math.random() - 0.5) * 0.1;
self.update = function () {
self.y += self.speed;
asteroidGraphics.rotation += self.rotationSpeed;
};
return self;
});
var Debris = Container.expand(function () {
var self = Container.call(this);
var debrisGraphics = self.attachAsset('debris', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1.5,
scaleY: 1.5
});
self.speed = 4 + Math.random() * 5;
self.horizontalSpeed = (Math.random() - 0.5) * 2;
self.update = function () {
self.y += self.speed;
self.x += self.horizontalSpeed;
};
return self;
});
var Spaceship = Container.expand(function () {
var self = Container.call(this);
var shipGraphics = self.attachAsset('spaceship', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 2.0,
scaleY: 2.0
});
self.speed = 0;
self.maxSpeed = 8;
self.acceleration = 0.3;
self.friction = 0.85;
self.targetX = 1024; // Default center position
self.update = function () {
// Smoothly move towards target position
var deltaX = self.targetX - self.x;
self.x += deltaX * 0.1; // Smooth interpolation factor
// Keep ship within bounds
if (self.x < 40) {
self.x = 40;
}
if (self.x > 2008) {
self.x = 2008;
}
};
self.moveLeft = function () {
self.speed = Math.max(self.speed - self.acceleration, -self.maxSpeed);
};
self.moveRight = function () {
self.speed = Math.min(self.speed + self.acceleration, self.maxSpeed);
};
self.setTargetX = function (x) {
self.targetX = x;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000011
});
/****
* Game Code
****/
var spaceship = new Spaceship();
var obstacles = [];
var scrollSpeed = 4;
var spawnTimer = 0;
var spawnRate = 120; // frames between spawns
var gameSpeed = 1;
var altitude = 0;
var lastTouchX = null;
var isDragging = false;
var maxHealth = 100;
var currentHealth = 100;
var healthBarBg;
var healthBarFill;
// Create horizontal bar behind spaceship
var spaceshipBar = LK.getAsset('spaceshipBar', {
anchorX: 0.5,
anchorY: 0.5
});
spaceshipBar.x = 1024;
spaceshipBar.y = 2400;
game.addChild(spaceshipBar);
// Position spaceship
spaceship.x = 1024;
spaceship.y = 2400;
game.addChild(spaceship);
// Create score display
var scoreText = new Text2('Altitude: 0m', {
size: 60,
fill: 0xFFFFFF
});
scoreText.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreText);
// Create altitude display
var altitudeText = new Text2('Score: 0', {
size: 50,
fill: 0xFFFFFF
});
altitudeText.anchor.set(0.5, 0);
altitudeText.y = 80;
LK.gui.top.addChild(altitudeText);
// Create health bar background
healthBarBg = LK.getAsset('healthBarBg', {
anchorX: 0.5,
anchorY: 0.0
});
healthBarBg.x = 1024;
healthBarBg.y = 200;
game.addChild(healthBarBg);
// Create health bar fill
healthBarFill = LK.getAsset('healthBarFill', {
anchorX: 0.5,
anchorY: 0.0
});
healthBarFill.x = 1024;
healthBarFill.y = 202;
game.addChild(healthBarFill);
function createObstacle() {
var obstacle;
if (Math.random() < 0.7) {
obstacle = new Asteroid();
} else {
obstacle = new Debris();
}
obstacle.x = Math.random() * (2048 - 100) + 50;
obstacle.y = -50;
obstacles.push(obstacle);
game.addChild(obstacle);
// Move debris behind spaceship
if (obstacle instanceof Debris) {
game.setChildIndex(obstacle, 0);
}
}
function handleTouch(x, y) {
// Directly set spaceship target to cursor position
spaceship.setTargetX(x);
}
game.down = function (x, y, obj) {
isDragging = true;
lastTouchX = x;
handleTouch(x, y);
};
game.move = function (x, y, obj) {
// Always follow cursor, not just when dragging
handleTouch(x, y);
};
game.up = function (x, y, obj) {
isDragging = false;
lastTouchX = null;
};
game.update = function () {
// Update altitude and score
altitude += scrollSpeed;
LK.setScore(Math.floor(altitude / 10));
// Update displays
scoreText.setText('Altitude: ' + Math.floor(altitude) + 'm');
altitudeText.setText('Score: ' + LK.getScore());
// Increase difficulty over time
if (LK.ticks % 600 === 0) {
// Every 10 seconds
gameSpeed += 0.1;
scrollSpeed = Math.min(scrollSpeed + 0.3, 10);
spawnRate = Math.max(spawnRate - 5, 30);
}
// Spawn obstacles
spawnTimer++;
if (spawnTimer >= spawnRate) {
createObstacle();
spawnTimer = 0;
}
// Update spaceship bar position to follow spaceship
spaceshipBar.x = spaceship.x;
spaceshipBar.y = spaceship.y;
// Update obstacles and check collisions
for (var i = obstacles.length - 1; i >= 0; i--) {
var obstacle = obstacles[i];
// Track last position for cleanup
if (obstacle.lastY === undefined) obstacle.lastY = obstacle.y;
// Remove obstacles that are off screen
if (obstacle.lastY < 2800 && obstacle.y >= 2800) {
obstacle.destroy();
obstacles.splice(i, 1);
continue;
}
// Check collision with spaceship
if (obstacle.intersects(spaceship)) {
// Only deal damage if it's an asteroid (not small debris or stars)
if (obstacle instanceof Asteroid) {
// Reduce health instead of immediate game over
currentHealth -= 20;
// Update health bar
var healthPercent = currentHealth / maxHealth;
healthBarFill.scaleX = healthPercent;
healthBarFill.x = 1024 - 148 + 296 * healthPercent * 0.5;
// Change health bar color based on health level
if (currentHealth <= 20) {
healthBarFill.tint = 0xff0000; // Red
} else if (currentHealth <= 50) {
healthBarFill.tint = 0xffff00; // Yellow
} else {
healthBarFill.tint = 0x00ff00; // Green
}
// Flash screen red briefly
LK.effects.flashScreen(0xff0000, 300);
LK.getSound('explosion').play();
// Check if health is depleted
if (currentHealth <= 0) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
return;
}
// Remove only asteroids that hit us
obstacle.destroy();
obstacles.splice(i, 1);
continue;
}
}
obstacle.lastY = obstacle.y;
}
// Create star field effect by occasionally spawning small debris
if (LK.ticks % 30 === 0) {
var star = new Debris();
star.x = Math.random() * 2048;
star.y = -10;
star.speed = 3 + Math.random() * 4;
star.horizontalSpeed = 0;
// Make it smaller and whiter
star.scaleX = 0.3;
star.scaleY = 0.3;
star.alpha = 0.6;
obstacles.push(star);
game.addChild(star);
// Move star behind spaceship
game.setChildIndex(star, 0);
}
};
// Start background music
LK.playMusic('space_music'); ===================================================================
--- original.js
+++ change.js
@@ -97,8 +97,16 @@
var maxHealth = 100;
var currentHealth = 100;
var healthBarBg;
var healthBarFill;
+// Create horizontal bar behind spaceship
+var spaceshipBar = LK.getAsset('spaceshipBar', {
+ anchorX: 0.5,
+ anchorY: 0.5
+});
+spaceshipBar.x = 1024;
+spaceshipBar.y = 2400;
+game.addChild(spaceshipBar);
// Position spaceship
spaceship.x = 1024;
spaceship.y = 2400;
game.addChild(spaceship);
@@ -185,8 +193,11 @@
if (spawnTimer >= spawnRate) {
createObstacle();
spawnTimer = 0;
}
+ // Update spaceship bar position to follow spaceship
+ spaceshipBar.x = spaceship.x;
+ spaceshipBar.y = spaceship.y;
// Update obstacles and check collisions
for (var i = obstacles.length - 1; i >= 0; i--) {
var obstacle = obstacles[i];
// Track last position for cleanup