User prompt
add another run frame for the palyer
User prompt
maje player run continusly by switching running frames
User prompt
Make player switch between the normal and run frames to create a running animation automaticly and forever
User prompt
make player run automaticly
User prompt
make player always run
User prompt
ajoute 2 frames pour le player dans le jeu pour faire une animation de course
Code edit (1 edits merged)
Please save this source code
User prompt
play bg music all the game
User prompt
use jump sound when jumping
User prompt
Make that I can die also when Im not jumping and touch him
User prompt
fait que si je saute SUR enemy, il s'écrase et disparait mais si je le touche pas par dessus je meurs.
User prompt
masque l'asset player lors du saut
User prompt
simplifie la gestion du saut dans le update
User prompt
simplifie la fonction de saut
Code edit (1 edits merged)
Please save this source code
User prompt
dans player crée playerJumpFrame dès le départ en invisible et change sa visibilitée lors du saut, au lieu de la recrée
User prompt
Set player's alpha to 0 and playerJumpFrame to 1 when clicking
User prompt
Set player's alpha to 0 and playerJumpFrame to 1 when clicking
User prompt
when clicking, set player's alpha to 0 and playerJumpFrame to 1
User prompt
when clicking, set alpha of player to 0
User prompt
when clicking, set alpha of playerJumpFrame to 1
User prompt
when clicking, set alpha of playerJumpFrame to 100
User prompt
hide playerJumpFrame
User prompt
Hide playerJumpFrame 1 second after player jumped
User prompt
Hide playerJumpFrame 1 second after player jumped
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
// Define a class for enemies
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.update = function () {
self.x -= self.speed;
if (self.x < -50) {
self.destroy();
}
};
});
//<Assets used in the game will automatically appear here>
// Define a class for the player character
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
var playerRunFrame = self.attachAsset('playerRunFrame', {
anchorX: 0.5,
anchorY: 0.5,
alpha: 0 // Hide the run frame by setting alpha to 0
});
self.speed = 5;
self.jumpHeight = 30;
self.isJumping = false;
self.velocityY = 0;
self.isFalling = false;
self.jumpFrame = self.attachAsset('playerJumpFrame', {
anchorX: 0.5,
anchorY: 0.5,
alpha: 0 // Hide the jump frame by setting alpha to 0
});
self.update = function () {
if (self.isJumping) {
self.y += self.velocityY;
self.velocityY += 0.7; // Decreased gravity effect by 30%
self.isFalling = self.velocityY > 0;
self.jumpFrame.alpha = 1; // While jumping, switch to the jump frame
playerGraphics.alpha = 0; // Hide the player asset when jumping
if (self.y >= 2732 / 2) {
// Ground level
self.y = 2732 / 2;
self.isJumping = false;
self.velocityY = 0;
self.jumpFrame.alpha = 0; // When not jumping, switch back to the normal frame
// Switch between the normal and run frames to create a running animation
if (LK.ticks % 10 < 5) {
playerGraphics.alpha = 1; // Show the player asset for the first half of the animation
playerRunFrame.alpha = 0; // Hide the run frame for the first half of the animation
} else {
playerGraphics.alpha = 0; // Hide the player asset for the second half of the animation
playerRunFrame.alpha = 1; // Show the run frame for the second half of the animation
}
// Add a bounce effect
tween(self, {
scaleX: 1.2,
scaleY: 0.8
}, {
duration: 100,
easing: tween.elasticOut,
onFinish: function onFinish() {
tween(self, {
scaleX: 1,
scaleY: 1
}, {
duration: 500,
easing: tween.elasticOut
});
}
});
}
}
};
self.jump = function () {
if (!self.isJumping) {
self.isJumping = true;
self.velocityY = -self.jumpHeight;
self.jumpFrame.alpha = 1; // Make jump frame visible
LK.getSound('jump').play(); // Play jump sound
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87CEEB // Sky blue background
});
/****
* Game Code
****/
// Import the tween plugin
var background = game.addChild(LK.getAsset('background', {
anchorX: 0,
anchorY: 0
}));
background.x = 0;
background.y = 0;
// Initialize player
var player = game.addChild(new Player());
player.x = 2048 / 2;
player.y = 2732 / 2;
// Initialize enemies
var enemies = [];
var enemySpawnInterval = 100;
var enemySpawnCounter = 0;
// Create a new Text2 object to display the score
var scoreText = new Text2('0', {
size: 100,
fill: 0xFFFFFF
});
// Add the score text to the game GUI at the top center of the screen
LK.gui.top.addChild(scoreText);
scoreText.x = 2048 / 2;
scoreText.y = 0;
// Handle game updates
game.update = function () {
player.update();
// Spawn enemies
enemySpawnCounter++;
if (enemySpawnCounter >= enemySpawnInterval) {
var enemy = new Enemy();
enemy.x = 2048;
enemy.y = 2732 / 2 + 200;
enemies.push(enemy);
game.addChild(enemy);
// Randomize the spawn interval for the next enemy
enemySpawnInterval = Math.floor(Math.random() * 150) + 50;
enemySpawnCounter = 0;
}
// Update enemies
for (var j = enemies.length - 1; j >= 0; j--) {
enemies[j].update();
if (player.intersects(enemies[j])) {
if (player.isFalling || !player.isJumping) {
enemies[j].destroy();
enemies.splice(j, 1);
} else {
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());
}
}
};
// Handle player jump
game.down = function (x, y, obj) {
player.jump();
};
// Play background music
LK.playMusic('bgMusic'); ===================================================================
--- original.js
+++ change.js
@@ -44,9 +44,8 @@
anchorY: 0.5,
alpha: 0 // Hide the jump frame by setting alpha to 0
});
self.update = function () {
- self.x += self.speed; // Player runs automatically
if (self.isJumping) {
self.y += self.velocityY;
self.velocityY += 0.7; // Decreased gravity effect by 30%
self.isFalling = self.velocityY > 0;