User prompt
when player is killed, before showing game over, play dead sound for 2 seconds, then game over.
Code edit (7 edits merged)
Please save this source code
User prompt
mario highers jump should not be over the top of the screen
Code edit (1 edits merged)
Please save this source code
User prompt
when game over condition is given, before showing game over, wait for two seconds.
User prompt
when game over is detected, play game over sound and the show game over.
User prompt
when player collides with enemy, before game over screen, pop player up, then make him flop and go offscreen down. at that moment play death sound. after 3 seconds do game over
User prompt
when player is killed, add an animation. it should also pop and go off screen, and play death sound. wait 2 seconds, and then show game over.
User prompt
play stomp when enemy is killed
User prompt
once player lands on enemy, enemy can't kill player anumore
User prompt
if player is falling after jump and lands on enemy kill enmey. when enemy is killed it should pop up and then move downwards offscreen
User prompt
play jump when player jumps
User prompt
on game start play theme
User prompt
a little more floating so less gravity
User prompt
add a little more gravity to make players jump and descend a little slower
Code edit (1 edits merged)
Please save this source code
User prompt
make gague bar more proportionat to the players jump heigh
User prompt
enemies should not jump
Code edit (1 edits merged)
Please save this source code
User prompt
gauge fill should be aligne with the left side of the gaugebar
User prompt
bar fill is starting i n the middle of the empty one, please move fill to the left ot match the bar
User prompt
gauge should start empty
User prompt
Gauge bar should be fill from left to right not from the center to the sides
User prompt
fill gauge from left to right
User prompt
Please fix the bug: 'Uncaught TypeError: clearInterval is not a function' in or related to this line: 'clearInterval(interval);' Line Number: 267
/**** * Classes ****/ var Background = Container.expand(function () { var self = Container.call(this); var backgrounds = ['background1', 'background2', 'background3']; var randomBackground = backgrounds[Math.floor(Math.random() * backgrounds.length)]; var backgroundGraphics = self.attachAsset(randomBackground, { anchorX: 0, anchorY: 0 }); self.speed = 3; self.update = function () { self.x -= self.speed; if (self.x <= -2048) { self.x = 2048; } }; }); var Background2 = Container.expand(function () { var self = Container.call(this); var backgrounds = ['background1', 'background2', 'background3']; var randomBackground = backgrounds[Math.floor(Math.random() * backgrounds.length)]; var backgroundGraphics = self.attachAsset(randomBackground, { anchorX: 0, anchorY: 0 }); self.speed = 3; self.update = function () { self.x -= self.speed; if (self.x <= -2048) { self.x = 2048; } }; }); var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy1', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.5, scaleY: 1.5 }); self.speed = 6 + Math.random() * 2; self.passed = false; self.isJumping = false; self.velocityY = 0; self.groundY = 2732 - 400; // 400 pixels from bottom self.y = self.groundY; // Set initial position to ground level self.runFrames = ['enemy1', 'enemy2']; self.runFrameIndex = 0; self.runFrameCounter = 0; self.runFrameDelay = 20; self.swapSprite = function (newAsset) { var newGraphics = self.attachAsset(newAsset, { anchorX: 0.5, anchorY: 0.5, scaleX: 1.5, scaleY: 1.5 }); if (enemyGraphics) { enemyGraphics.destroy(); } enemyGraphics = newGraphics; }; self.update = function () { self.x -= self.speed; if (self.isJumping) { self.y += self.velocityY; self.velocityY += 0.9; if (self.y >= self.groundY) { self.y = self.groundY; self.isJumping = false; self.velocityY = 0; } } else if (Math.random() < 0.01) { self.isJumping = true; self.velocityY = -20 - Math.random() * 10; } self.runFrameCounter++; if (self.runFrameCounter >= self.runFrameDelay) { self.runFrameIndex = (self.runFrameIndex + 1) % self.runFrames.length; self.swapSprite(self.runFrames[self.runFrameIndex]); self.runFrameCounter = 0; } if (self.x < -100) { self.destroy(); } }; }); var GaugeBar = Container.expand(function () { var self = Container.call(this); var gaugeBackground = self.attachAsset('gauge_background', { anchorX: 0.5, anchorY: 0.5 }); var gaugeFill = self.attachAsset('gauge_fill', { anchorX: 0.5, anchorY: 0.5 }); self.maxWidth = gaugeFill.width; self.currentValue = 0; self.updateGauge = function (value) { self.currentValue = value; gaugeFill.scaleX = self.currentValue / 100; }; }); var Player = Container.expand(function () { var self = Container.call(this); var currentSprite = self.attachAsset('player_run1', { anchorX: 0.5, anchorY: 0.5, visible: true, scaleX: 1.5, scaleY: 1.5 }); var nextSprite = self.attachAsset('player_run1', { anchorX: 0.5, anchorY: 0.5, visible: false, scaleX: 1.5, scaleY: 1.5 }); self.currentAsset = 'player_run1'; self.speed = 5; self.jumpHeight = 25; self.isJumping = false; self.velocityY = 0; self.groundY = 2732 - 400; // 400 pixels from bottom self.y = self.groundY; // Set initial position to ground level self.runFrames = ['player_run1', 'player_run2', 'player_run3']; self.runFrameIndex = 0; self.runFrameCounter = 0; self.runFrameDelay = 10; self.swapSprite = function (newAsset) { if (self.currentAsset !== newAsset) { nextSprite = self.attachAsset(newAsset, { anchorX: 0.5, anchorY: 0.5, visible: true, scaleX: 1.5, scaleY: 1.5 }); currentSprite.visible = false; currentSprite.destroy(); currentSprite = nextSprite; self.currentAsset = newAsset; } }; self.update = function () { if (self.isJumping) { self.y += self.velocityY; self.velocityY += 0.9; if (self.y >= self.groundY - 30) { self.y = self.groundY - 30; self.isJumping = false; self.velocityY = 0; self.swapSprite(self.runFrames[self.runFrameIndex]); } } else { self.runFrameCounter++; if (self.runFrameCounter >= self.runFrameDelay) { self.runFrameIndex = (self.runFrameIndex + 1) % self.runFrames.length; self.swapSprite(self.runFrames[self.runFrameIndex]); self.runFrameCounter = 0; } } }; self.jump = function () { if (!self.isJumping) { self.isJumping = true; self.velocityY = -self.jumpHeight; self.swapSprite('player_jump'); self.runFrameCounter = 0; } }; }); /**** * Initialize Game ****/ /**** *-Seperator- ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB }); /**** * Game Code ****/ var background = game.addChild(new Background()); background.x = 0; background.y = 0; var background2 = game.addChild(new Background2()); background2.x = 2048; background2.y = 0; var player = game.addChild(new Player()); player.x = 2048 / 4; player.y = player.groundY - 30; // Use groundY for initial position and move 30 pixels higher var enemies = []; var enemySpawnInterval = 80; var enemySpawnCounter = 0; var gaugeBar = game.addChild(new GaugeBar()); gaugeBar.x = 2048 / 2; gaugeBar.y = 100; var scoreText = new Text2('0', { size: 100, fill: 0xFFFFFF }); LK.gui.top.addChild(scoreText); scoreText.x = 2048 / 2; scoreText.y = 50; game.update = function () { background.update(); background2.update(); player.update(); enemySpawnCounter++; if (enemySpawnCounter >= enemySpawnInterval) { var enemy = new Enemy(); enemy.x = 2048 + Math.random() * 200; enemy.y = enemy.groundY; // Use groundY for initial position enemies.push(enemy); game.addChild(enemy); enemySpawnInterval = Math.floor(Math.random() * 100) + 60; enemySpawnCounter = 0; } for (var j = enemies.length - 1; j >= 0; j--) { enemies[j].update(); if (player.intersects(enemies[j])) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } else if (player.x > enemies[j].x && !enemies[j].passed) { enemies[j].passed = true; LK.setScore(LK.getScore() + 1); scoreText.setText(LK.getScore()); } if (enemies[j].x < -100) { enemies.splice(j, 1); } } }; game.down = function (x, y, obj) { var startTime = Date.now(); var interval = LK.setInterval(function () { var elapsed = Date.now() - startTime; var newValue = Math.min(100, elapsed / 10); // Increase gauge value over time gaugeBar.updateGauge(newValue); }, 100); game.up = function () { LK.clearInterval(interval); var jumpHeight = gaugeBar.currentValue / 2; // Scale the gauge value to jump height player.jumpHeight = jumpHeight; player.jump(); gaugeBar.updateGauge(0); // Reset gauge after jump }; var jumpHeight = gaugeBar.currentValue / 2; // Scale the gauge value to jump height player.jumpHeight = jumpHeight; gaugeBar.updateGauge(0); // Reset gauge after jump };
===================================================================
--- original.js
+++ change.js
@@ -101,9 +101,9 @@
self.maxWidth = gaugeFill.width;
self.currentValue = 0;
self.updateGauge = function (value) {
self.currentValue = value;
- gaugeFill.width = self.maxWidth * (self.currentValue / 100);
+ gaugeFill.scaleX = self.currentValue / 100;
};
});
var Player = Container.expand(function () {
var self = Container.call(this);