User prompt
Make me spin until I land and keep my direction when I land
User prompt
Rainbow overlay is there when invincible and not just orb power. Fix the code so only when with the orb powerup
User prompt
Rainbow overlay is there when invincible. Fix the code so only when with the orb powerup
User prompt
Add this on top of player (like above it) when invincibility timer is not 0
User prompt
Make pausing be invincibility instead for time until chosen, and give 5 sec invincibility once go back to game and icon chosen
User prompt
Please fix the bug: 'Uncaught TypeError: LK.pauseGame is not a function' in or related to this line: 'LK.pauseGame();' Line Number: 250
User prompt
Add new icon here, and ensure that icon chooser pauses game until chosen
User prompt
Player still goes to 0.5 transparency after use of powerup. Keep icon not transparent or translucent at all times
User prompt
It still goes to 0.5 alpha after use of powerup. Keep alpha of 1 at all times
User prompt
Make icon never go to different alpha, only overlay
User prompt
Spikes should be less often
User prompt
Still have overlay for orb powerup for when I have it, overlay never appears
User prompt
Still have overlay for orb powerup
User prompt
Icon kit button that pauses game to choose 1 of 3 icons, the original player icon or 2 new ones
User prompt
Keep original jump power but stay easy
User prompt
Keep the jump power though
User prompt
Make it easier
User prompt
Please fix the code
User prompt
It doesn't remove after game over...
User prompt
Make overlay translucent and remove overlay after jump used or game over ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
overlay this overlay on player when I have orb powerup
User prompt
Make jumps and orb jumps bigger
User prompt
Make spikes bigger and player slower
User prompt
Add orb to touch to gain a bigger jump next jump, sometimes help, sometimes just annoys you and makes you die.
Code edit (1 edits merged)
Please save this source code
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Obstacle = Container.expand(function (type, x, y) { var self = Container.call(this); self.obstacleType = type || 'spike'; if (self.obstacleType === 'spike') { var obstacleGraphics = self.attachAsset('spike', { anchorX: 0.5, anchorY: 1.0 }); } else if (self.obstacleType === 'platform') { var obstacleGraphics = self.attachAsset('platform', { anchorX: 0.5, anchorY: 0.5 }); } self.x = x || 0; self.y = y || 0; self.speed = -5; self.update = function () { self.x += self.speed; }; return self; }); var Orb = Container.expand(function (x, y) { var self = Container.call(this); var orbGraphics = self.attachAsset('orb', { anchorX: 0.5, anchorY: 0.5 }); self.x = x || 0; self.y = y || 0; self.speed = -5; self.collected = false; self.update = function () { self.x += self.speed; // Gentle floating animation orbGraphics.y = Math.sin(LK.ticks * 0.1) * 10; // Gentle rotation orbGraphics.rotation += 0.05; }; return self; }); var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); var powerOverlay = self.attachAsset('Orb_powerup_overlay_on_player', { anchorX: 0.5, anchorY: 0.5, visible: false, alpha: 0.5 }); self.velocityY = 0; self.gravity = 0.8; self.jumpPower = -18; self.powerJumpPower = -25; self.hasPowerJump = false; self.isGrounded = false; self.groundY = 2400; self.jump = function () { if (self.isGrounded) { if (self.hasPowerJump) { self.velocityY = self.powerJumpPower; self.hasPowerJump = false; // Fade out power overlay with tween tween(powerOverlay, { alpha: 0 }, { duration: 300, onFinish: function onFinish() { powerOverlay.visible = false; powerOverlay.alpha = 0.5; // Reset alpha for next use } }); // Flash player blue to indicate power jump used LK.effects.flashObject(self, 0x00ffff, 300); } else { self.velocityY = self.jumpPower; } self.isGrounded = false; LK.getSound('jump').play(); } }; self.showPowerOverlay = function () { powerOverlay.visible = true; }; self.hidePowerOverlay = function () { powerOverlay.visible = false; powerOverlay.alpha = 0.5; // Reset alpha for next use }; self.update = function () { // Apply gravity self.velocityY += self.gravity; self.y += self.velocityY; // Ground collision if (self.y >= self.groundY) { self.y = self.groundY; self.velocityY = 0; self.isGrounded = true; } // Screen bounds if (self.y < 0) { self.y = 0; self.velocityY = 0; } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x222222 }); /**** * Game Code ****/ var player; var obstacles = []; var orbs = []; var gameSpeed = 5; var spawnTimer = 0; var orbSpawnTimer = 0; var distance = 0; var gameStarted = false; var lastObstacleX = 0; // Background var bg = game.addChild(LK.getAsset('background', { anchorX: 0, anchorY: 0, x: 0, y: 0 })); // Create player player = game.addChild(new Player()); player.x = 300; player.y = 2400; player.groundY = 2400; // Score display var scoreText = new Text2('Distance: 0', { size: 60, fill: 0xFFFFFF }); scoreText.anchor.set(0, 0); LK.gui.topLeft.addChild(scoreText); // Instructions var instructionText = new Text2('TAP TO JUMP', { size: 80, fill: 0xFFFF00 }); instructionText.anchor.set(0.5, 0.5); LK.gui.center.addChild(instructionText); function startGame() { if (!gameStarted) { gameStarted = true; instructionText.visible = false; LK.playMusic('bgMusic'); } } function resetGame() { // Reset player player.x = 300; player.y = 2400; player.velocityY = 0; player.isGrounded = true; // Clear obstacles for (var i = obstacles.length - 1; i >= 0; i--) { obstacles[i].destroy(); } obstacles = []; // Clear orbs for (var i = orbs.length - 1; i >= 0; i--) { orbs[i].destroy(); } orbs = []; // Reset player power jump player.hasPowerJump = false; // Hide power overlay player.hidePowerOverlay(); // Reset game state distance = 0; spawnTimer = 0; lastObstacleX = 0; gameStarted = false; instructionText.visible = true; // Flash effect LK.effects.flashScreen(0xff0000, 500); LK.getSound('death').play(); } function spawnOrb() { var orbX = 2048 + 100; var orbY = 2000 + Math.random() * 400; // Random height between ground and air var orb = new Orb(orbX, orbY); orbs.push(orb); game.addChild(orb); } function spawnObstacle() { var minGap = 200; var maxGap = 350; var gap = minGap + Math.random() * (maxGap - minGap); if (lastObstacleX === 0 || 2048 - lastObstacleX > gap) { var obstacleX = 2048 + 100; var obstacleY = 2400; // Random obstacle type var obstacleType = Math.random() < 0.8 ? 'spike' : 'platform'; if (obstacleType === 'platform') { obstacleY = 2200 + Math.random() * 200; } var obstacle = new Obstacle(obstacleType, obstacleX, obstacleY); obstacles.push(obstacle); game.addChild(obstacle); lastObstacleX = obstacleX; } } function checkCollisions() { // Check orb collisions for (var i = orbs.length - 1; i >= 0; i--) { var orb = orbs[i]; if (!orb.collected && player.intersects(orb)) { orb.collected = true; player.hasPowerJump = true; player.showPowerOverlay(); // Flash player cyan to indicate power-up collected LK.effects.flashObject(player, 0x00ffff, 500); orb.destroy(); orbs.splice(i, 1); continue; } // Remove off-screen orbs if (orb.x < -100) { orb.destroy(); orbs.splice(i, 1); } } for (var i = obstacles.length - 1; i >= 0; i--) { var obstacle = obstacles[i]; if (player.intersects(obstacle)) { resetGame(); return; } // Remove off-screen obstacles if (obstacle.x < -100) { obstacle.destroy(); obstacles.splice(i, 1); } } } // Touch controls game.down = function (x, y, obj) { if (!gameStarted) { startGame(); } player.jump(); }; // Update game game.update = function () { if (!gameStarted) return; // Update distance distance += gameSpeed; scoreText.setText('Distance: ' + Math.floor(distance / 10)); // Spawn obstacles spawnTimer++; if (spawnTimer % 30 === 0) { // Spawn every 30 ticks (~0.5 seconds) spawnObstacle(); } // Spawn orbs occasionally orbSpawnTimer++; if (orbSpawnTimer % 180 === 0) { // Spawn every 180 ticks (~3 seconds) spawnOrb(); } // Update obstacle positions for (var i = 0; i < obstacles.length; i++) { var obstacle = obstacles[i]; obstacle.x -= gameSpeed; // Track last obstacle position for gap calculation if (obstacle.x < 2048 && obstacle.x > lastObstacleX - 2048) { lastObstacleX = obstacle.x; } } // Update orb positions for (var i = 0; i < orbs.length; i++) { var orb = orbs[i]; orb.x -= gameSpeed; } // Check collisions checkCollisions(); // Increase difficulty gradually if (LK.ticks % 600 === 0) { // Every 10 seconds gameSpeed += 0.5; gameSpeed = Math.min(gameSpeed, 12); // Cap max speed } };
===================================================================
--- original.js
+++ change.js
@@ -59,10 +59,10 @@
visible: false,
alpha: 0.5
});
self.velocityY = 0;
- self.gravity = 0.6;
- self.jumpPower = -15;
+ self.gravity = 0.8;
+ self.jumpPower = -18;
self.powerJumpPower = -25;
self.hasPowerJump = false;
self.isGrounded = false;
self.groundY = 2400;
@@ -205,10 +205,10 @@
orbs.push(orb);
game.addChild(orb);
}
function spawnObstacle() {
- var minGap = 300;
- var maxGap = 500;
+ var minGap = 200;
+ var maxGap = 350;
var gap = minGap + Math.random() * (maxGap - minGap);
if (lastObstacleX === 0 || 2048 - lastObstacleX > gap) {
var obstacleX = 2048 + 100;
var obstacleY = 2400;
@@ -270,16 +270,16 @@
distance += gameSpeed;
scoreText.setText('Distance: ' + Math.floor(distance / 10));
// Spawn obstacles
spawnTimer++;
- if (spawnTimer % 45 === 0) {
- // Spawn every 45 ticks (~0.75 seconds)
+ if (spawnTimer % 30 === 0) {
+ // Spawn every 30 ticks (~0.5 seconds)
spawnObstacle();
}
// Spawn orbs occasionally
orbSpawnTimer++;
- if (orbSpawnTimer % 120 === 0) {
- // Spawn every 120 ticks (~2 seconds)
+ if (orbSpawnTimer % 180 === 0) {
+ // Spawn every 180 ticks (~3 seconds)
spawnOrb();
}
// Update obstacle positions
for (var i = 0; i < obstacles.length; i++) {
@@ -297,10 +297,10 @@
}
// Check collisions
checkCollisions();
// Increase difficulty gradually
- if (LK.ticks % 900 === 0) {
- // Every 15 seconds
- gameSpeed += 0.3;
- gameSpeed = Math.min(gameSpeed, 10); // Cap max speed
+ if (LK.ticks % 600 === 0) {
+ // Every 10 seconds
+ gameSpeed += 0.5;
+ gameSpeed = Math.min(gameSpeed, 12); // Cap max speed
}
};
\ No newline at end of file