User prompt
Change the place that says Coin to a symbol
User prompt
Move the place that says Coin to the upper middle part
User prompt
Make the floor animated ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Background, endless, image
User prompt
Increases coins
User prompt
When you click on settings, there will be sound settings ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Add a start screen to the game, press the button to play, and go to settings to adjust the sound. ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Slightly increase the size of everything on the screen ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Make the character an animated fox ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Clear all obstacles
User prompt
Delete the mountain and forest in the background
User prompt
Let the character appear in the foreground
User prompt
Make a mountain and a grassy forest and make it animated ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
As the ground character progresses, it progresses with it.
User prompt
When the character jumps, leave a small trail behind ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Let the character jump a little more 2 units
User prompt
The more you press on the screen, the higher the character jumps.
User prompt
Adjust the randomness of obstacles proportionally
User prompt
Adjust the size of your character enough to jump over obstacles
User prompt
Replace the number of lives on the screen with 3 hearts
User prompt
Give the character the right to life and give it 3 lives
User prompt
Make the character's hitbox round
User prompt
Make the obstacle locations a little more random
User prompt
Convert the obstacle model to the thorn model
Code edit (1 edits merged)
Please save this source code
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Coin = Container.expand(function () { var self = Container.call(this); var coinGraphics = self.attachAsset('coin', { anchorX: 0.5, anchorY: 0.5 }); self.speed = gameSpeed; self.collected = false; // Floating animation self.floatOffset = 0; self.update = function () { self.x -= self.speed; // Floating animation self.floatOffset += 0.15; coinGraphics.y = Math.sin(self.floatOffset) * 10; // Rotation animation coinGraphics.rotation += 0.1; }; return self; }); var Player = Container.expand(function () { var self = Container.call(this); var foxGraphics = self.attachAsset('fox', { anchorX: 0.5, anchorY: 1.0 }); self.isJumping = false; self.velocityY = 0; self.groundY = 2732 - 250; // Ground level self.jumpPower = -27; self.gravity = 1.2; self.runAnimationTimer = 0; self.jump = function () { if (!self.isJumping) { self.isJumping = true; self.velocityY = self.jumpPower; LK.getSound('jump').play(); // Jump animation - scale up and rotate slightly tween(foxGraphics, { scaleX: 1.2, scaleY: 1.2, rotation: -0.3 }, { duration: 200, easing: tween.easeOut, onFinish: function onFinish() { tween(foxGraphics, { scaleX: 1.0, scaleY: 1.0, rotation: 0 }, { duration: 300, easing: tween.easeIn }); } }); } }; self.update = function () { if (self.isJumping) { self.velocityY += self.gravity; self.y += self.velocityY; // Land on ground if (self.y >= self.groundY) { self.y = self.groundY; self.isJumping = false; self.velocityY = 0; } } else { // Running animation when on ground self.runAnimationTimer += 0.2; foxGraphics.y = Math.sin(self.runAnimationTimer) * 3; foxGraphics.scaleX = 1.0 + Math.sin(self.runAnimationTimer * 2) * 0.05; } }; return self; }); var Trail = Container.expand(function () { var self = Container.call(this); var trailGraphics = self.attachAsset('fox', { anchorX: 0.5, anchorY: 1.0, scaleX: 0.6, scaleY: 0.6, alpha: 0.7 }); self.speed = gameSpeed; self.update = function () { self.x -= self.speed; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB }); /**** * Game Code ****/ var player; var coins = []; var trails = []; var gameSpeed = 8; var spawnTimer = 0; var coinCount = 0; var distanceScore = 0; var groundY = 2732 - 250; var playerLives = 3; var trailTimer = 0; var background1, background2; // UI Elements var coinText = new Text2('Coins: 0', { size: 90, fill: 0xFFFFFF }); coinText.anchor.set(0, 0); LK.gui.topLeft.addChild(coinText); var scoreText = new Text2('Distance: 0', { size: 90, fill: 0xFFFFFF }); scoreText.anchor.set(1, 0); LK.gui.topRight.addChild(scoreText); // Create heart UI elements var hearts = []; for (var h = 0; h < 3; h++) { var heart = LK.getAsset('heart', { anchorX: 0.5, anchorY: 0.5, x: 120 + h * 105, y: 120 }); hearts.push(heart); LK.gui.topLeft.addChild(heart); } // Create endless scrolling background background1 = game.addChild(LK.getAsset('background', { anchorX: 0, anchorY: 0, x: 0, y: 0 })); background2 = game.addChild(LK.getAsset('background', { anchorX: 0, anchorY: 0, x: 2048, y: 0 })); // Create animated ground elements for endless scrolling var ground1 = game.addChild(LK.getAsset('ground', { anchorX: 0, anchorY: 0, x: 0, y: groundY })); var ground2 = game.addChild(LK.getAsset('ground', { anchorX: 0, anchorY: 0, x: 4008, // Position second ground at end of first ground y: groundY })); // Ground animation variables var groundAnimationTimer = 0; // Create player (will be added to foreground later) player = new Player(); player.x = 400; player.y = groundY; player.isInvulnerable = false; // Touch controls game.down = function (x, y, obj) { player.jump(); }; function spawnCoin() { var coin = new Coin(); coin.x = 2048 + 100; coin.y = groundY - 100 - Math.random() * 150; coins.push(coin); game.addChild(coin); } game.update = function () { // Increase distance score distanceScore += 1; scoreText.setText('Distance: ' + Math.floor(distanceScore / 10)); // Gradually increase speed gameSpeed = 8 + distanceScore / 2000; // Move background with game progression background1.x -= gameSpeed * 0.3; // Slower parallax effect background2.x -= gameSpeed * 0.3; // Reset background positions for endless scrolling if (background1.x <= -2048) { background1.x = background2.x + 2048; } if (background2.x <= -2048) { background2.x = background1.x + 2048; } // Move both ground elements with game progression ground1.x -= gameSpeed; ground2.x -= gameSpeed; // Reset ground positions for endless scrolling if (ground1.x <= -4008) { ground1.x = ground2.x + 4008; } if (ground2.x <= -4008) { ground2.x = ground1.x + 4008; } // Animate ground with subtle movement groundAnimationTimer += 0.1; var groundOffset = Math.sin(groundAnimationTimer) * 2; ground1.y = groundY + groundOffset; ground2.y = groundY + groundOffset; // Add slight scale animation to ground var scaleAnimation = 1.0 + Math.sin(groundAnimationTimer * 0.5) * 0.02; ground1.scaleY = scaleAnimation; ground2.scaleY = scaleAnimation; // Update spawn timer spawnTimer++; trailTimer++; // Create trail when player is jumping if (player.isJumping && trailTimer % 3 == 0) { var trail = new Trail(); trail.x = player.x; trail.y = player.y; trail.speed = gameSpeed; trails.push(trail); game.addChild(trail); // Fade out trail tween(trail, { alpha: 0, scaleX: 0.3, scaleY: 0.3 }, { duration: 500, onFinish: function onFinish() { trail.destroy(); } }); } // Spawn additional coins if (spawnTimer % 60 == 0 && Math.random() < 0.8) { spawnCoin(); } // Update and check coins for (var j = coins.length - 1; j >= 0; j--) { var coin = coins[j]; coin.speed = gameSpeed; // Check collection if (!coin.collected && player.intersects(coin)) { coin.collected = true; coinCount++; LK.setScore(coinCount); coinText.setText('Coins: ' + coinCount); LK.getSound('coin').play(); // Visual feedback LK.effects.flashObject(coin, 0xFFFFFF, 300); tween(coin, { alpha: 0, scaleX: 2, scaleY: 2 }, { duration: 300, onFinish: function onFinish() { coin.destroy(); } }); coins.splice(j, 1); continue; } // Remove off-screen coins if (coin.x < -50) { coin.destroy(); coins.splice(j, 1); } } // Update and clean up trails for (var k = trails.length - 1; k >= 0; k--) { var trail = trails[k]; trail.speed = gameSpeed; // Remove off-screen or completely faded trails if (trail.x < -100 || trail.alpha <= 0.1) { trail.destroy(); trails.splice(k, 1); } } // Ensure player stays in foreground by re-adding it if (player.parent !== game) { game.addChild(player); } else { // Move player to top of render order game.removeChild(player); game.addChild(player); } };
===================================================================
--- original.js
+++ change.js
@@ -157,15 +157,24 @@
anchorY: 0,
x: 2048,
y: 0
}));
-// Create ground
-var ground = game.addChild(LK.getAsset('ground', {
+// Create animated ground elements for endless scrolling
+var ground1 = game.addChild(LK.getAsset('ground', {
anchorX: 0,
anchorY: 0,
x: 0,
y: groundY
}));
+var ground2 = game.addChild(LK.getAsset('ground', {
+ anchorX: 0,
+ anchorY: 0,
+ x: 4008,
+ // Position second ground at end of first ground
+ y: groundY
+}));
+// Ground animation variables
+var groundAnimationTimer = 0;
// Create player (will be added to foreground later)
player = new Player();
player.x = 400;
player.y = groundY;
@@ -196,14 +205,27 @@
}
if (background2.x <= -2048) {
background2.x = background1.x + 2048;
}
- // Move ground with game progression
- ground.x -= gameSpeed;
- // Reset ground position when it moves too far left
- if (ground.x <= -2048) {
- ground.x = 0;
+ // Move both ground elements with game progression
+ ground1.x -= gameSpeed;
+ ground2.x -= gameSpeed;
+ // Reset ground positions for endless scrolling
+ if (ground1.x <= -4008) {
+ ground1.x = ground2.x + 4008;
}
+ if (ground2.x <= -4008) {
+ ground2.x = ground1.x + 4008;
+ }
+ // Animate ground with subtle movement
+ groundAnimationTimer += 0.1;
+ var groundOffset = Math.sin(groundAnimationTimer) * 2;
+ ground1.y = groundY + groundOffset;
+ ground2.y = groundY + groundOffset;
+ // Add slight scale animation to ground
+ var scaleAnimation = 1.0 + Math.sin(groundAnimationTimer * 0.5) * 0.02;
+ ground1.scaleY = scaleAnimation;
+ ground2.scaleY = scaleAnimation;
// Update spawn timer
spawnTimer++;
trailTimer++;
// Create trail when player is jumping
Just crystal
Just his head
Background, endless, forest, winter, cartoon. In-Game asset. 2d. High contrast. No shadows
Only the line of the ears and the color of the paws should be gray
Only the line of the ears and the color of the paws should be gray
Let C2 have the character's color
Only the line of the ears and the color of the paws should be gray
Delete the character on it
A version without snow
Koyu mavi elips start butonu. In-Game asset. 2d. High contrast. No shadows. In-Game asset. 2d. High contrast. No shadows
Uçan bir dinazor. In-Game asset. 2d. High contrast. No shadows
Alev topu. In-Game asset. 2d. High contrast. No shadows
Mavi top rasengan top. In-Game asset. 2d. High contrast. No shadows
jump
Sound effect
coin
Sound effect
Arkaplanmuzik
Music
gem_collect
Sound effect
happy_giggle
Sound effect
Canazalma
Sound effect
Arkaplanmuzik1
Music
wumpa1
Sound effect
cancan
Sound effect
box_break
Sound effect
tnt_break
Sound effect
enemy_sound
Sound effect
bullet_sound
Sound effect