User prompt
kuşları biraz daha büyült. Sayılarını azalt ve üstüne çıkılabilsin
User prompt
bulut kısmında bulutların üzerinde, bulutlardan biraz daha hızlı giden martılar yerleştirmeni istiyorum ara ara geçecek ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
save everything please ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
1000 puana ulaştıktan sonra müziği değiştirmek istiyorum
User prompt
zıplama miktarını arttır lütfen
User prompt
"Implement a variable jump mechanic for the player character: When the jump button is tapped quickly, the character performs a short hop. When the jump button is held down longer, the character jumps higher, up to a maximum height. Jump height should scale smoothly based on how long the button is held, similar to the classic Mario-style jumping. Release the jump button mid-air to stop ascending immediately and begin falling. Ensure the mechanic feels responsive and gives players control over jump precision. Adjust gravity and jump force to make both short hops and full jumps feel natural and satisfying."
User prompt
1. bulutların üzerindeyken karakter seke seke gidiyor. 2. bulutların üzerindeyken zıplayamıyorum. 3. bulutların üzerinden düştüğünde karakter yukarıdan geri gelsin sanki aşağıda görünmez bir portal varmış gibi.
User prompt
yes please
User prompt
oyunu denemek için bir buton oluştur sağ üste ona tıklayınca direkt 1000 puanım olsun
User prompt
"After the player reaches 1000 points, transition the environment to a dreamy sky level. Replace the ground with soft, fluffy, glowing clouds floating in mid-air. The player should now jump from cloud to cloud. Each cloud should have a light bounce animation and emit a gentle mist or glow effect. Background becomes a bright sky with gradient colors (from soft blue to pinkish-purple), with distant, slow-moving clouds and warm sunlight rays. Add sparkling particles and occasional light beams moving across the sky. The player character should appear slightly lighter, as if affected by reduced gravity, and leave a soft trail of glowing particles while moving or jumping. Include subtle, looping ambient sound effects like wind whooshes and echoing chimes.
User prompt
oyun 1000 puana ulaştıktan sonra bitmesin. 1000 puana ulaştıktan sonra karakterin hızı artsın ve müzik değişsin istiyorum. arka plan rengi ve efektlerin rengi değişsin istiyorum ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
. Engellere Dinamiklik Kat Bazıları dönen küpler olabilir. Bazıları yukarıdan inip çıkan lazer ışınları olabilir. Engeller vurulduğunda kırılma veya patlama efekti olabilir.
User prompt
dashtan sonra karakterin hızı yavaşlıyor düzeltir misin
User prompt
dashtan sonra yavaşlamasın aynı hızda devam etsin
User prompt
uzun zıplama basılı tutarken gerçekleşsin. Yani şu anda basılı uzun elinmi çekince uzun zıplıyor. basılı tutma ile eş zamanlı uzun zıplasın
User prompt
tek tıklama ile daha kısa basılı tıklama ile daha uzun bir zıplama gerçekleştirsin
User prompt
1. **Main Character**: - The character is a glowing humanoid-shaped runner made of light. - It leaves behind a bright motion trail that pulses with the beat. - The character floats slightly above the ground and reacts to the rhythm with slight bounces or flashes. - Color: Electric blue, but can shift hue based on combo streak or level theme. - Style: Minimalist, clean lines, neon edges, energetic feel. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
2. **Background Environment**: - Deep black or dark purple backgrounds to enhance contrast. - Animated, abstract shapes in the distance that pulse or oscillate with the music. - Use blurred moving light lines, particles flowing in the background like data streams. - Occasionally, giant holographic musical elements appear faintly in the distance (e.g., waveforms, speakers, frequency bars). - Background should subtly change with intensity of the song (e.g., darker and faster elements during fast sections).
User prompt
3. **Ground and Platforms**: - Semi-transparent glowing platforms with soft edges. - Platforms can appear/disappear or flicker in sync with beat patterns. - Ground is a smooth light path with a reflective shimmer, maybe with a subtle waveform moving through it. - Platforms change color slightly based on beat intensity or player progress. - Motion on the ground should match the scrolling tempo of the music. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
**Particles and VFX**: - Use light particles that follow the character and explode gently on successful actions. - When player hits a beat perfectly, emit radial burst particles from the player. - When a level starts or ends, trigger a beat-synced particle wave across the screen. - Add ambient dust/glow particles floating in the air for depth. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
**Camera/Animation Feel**: - Smooth scrolling side camera that zooms slightly in/out with intensity. - Use beat-synced camera shake or zoom for major hits/drops. - Transitions between levels use sound-reactive animation or tunnel effects. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
karakter yürüyen ayakları, kolları ve kafası olan bir insan olsun. ve sabit hızda yürüyor olsun
User prompt
karakter yer ile bağımlı bir şekilde sabit durduğunda geriye doğru gitmeli
User prompt
slide sesi de ekle
User prompt
*Sound Effects (SFX)**: Produce short, crisp, electronic sound effects suitable for the following actions in a music game: - **Jump Sound**: A light, musical chime with a quick upward pitch glide, synced to rhythm. - **Dash Sound**: A short, fast swoosh with a sparkly electronic accent. - **Slide Sound**: A smooth, lower-pitched whoosh with a soft tail. - **Success Hit Sound**: A bright, satisfying pluck or tone that feels rewarding. - **Failure/Miss Sound**: A muted, distorted bass thud that indicates loss or error without being too harsh. please add this sounds fix the old ones
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Obstacle = Container.expand(function () {
var self = Container.call(this);
var obstacleGfx = self.attachAsset('obstacle', {
anchorX: 0.5,
anchorY: 1
});
self.speed = -6;
self.pulsePhase = 0;
self.update = function () {
self.x += self.speed;
// Pulse effect
self.pulsePhase += 0.15;
var scale = 1 + Math.sin(self.pulsePhase) * 0.1;
obstacleGfx.scaleX = scale;
obstacleGfx.scaleY = scale;
// Beat sync glow
if (beatPulse > 0.5) {
obstacleGfx.tint = 0xffffff;
} else {
obstacleGfx.tint = 0xff0044;
}
};
return self;
});
var Particle = Container.expand(function () {
var self = Container.call(this);
var particleGfx = self.attachAsset('particle', {
anchorX: 0.5,
anchorY: 0.5
});
self.velocityX = 0;
self.velocityY = 0;
self.life = 60;
self.maxLife = 60;
self.update = function () {
self.x += self.velocityX;
self.y += self.velocityY;
self.velocityY += 0.2;
self.life--;
particleGfx.alpha = self.life / self.maxLife;
if (self.life <= 0) {
self.shouldDestroy = true;
}
};
return self;
});
var Platform = Container.expand(function () {
var self = Container.call(this);
var platformGfx = self.attachAsset('platform', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = -6;
self.glowPhase = 0;
self.update = function () {
self.x += self.speed;
// Glow effect
self.glowPhase += 0.1;
platformGfx.alpha = 0.7 + Math.sin(self.glowPhase) * 0.3;
};
return self;
});
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGfx = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
self.velocityY = 0;
self.velocityX = 0;
self.isGrounded = false;
self.isDashing = false;
self.dashCooldown = 0;
self.glowPhase = 0;
self.update = function () {
// Gravity
if (!self.isGrounded) {
self.velocityY += 0.8;
}
// Apply velocity
self.y += self.velocityY;
self.x += self.velocityX;
// Ground collision
if (self.y >= groundLevel - 30) {
self.y = groundLevel - 30;
self.velocityY = 0;
self.isGrounded = true;
}
// Dash cooldown
if (self.dashCooldown > 0) {
self.dashCooldown--;
}
// Glow effect
self.glowPhase += 0.1;
playerGfx.alpha = 0.8 + Math.sin(self.glowPhase) * 0.2;
// Keep player on screen
if (self.x < 0) self.x = 0;
if (self.x > 2048) self.x = 2048;
};
self.jump = function () {
if (self.isGrounded) {
self.velocityY = -18;
self.isGrounded = false;
LK.getSound('jump').play();
self.createJumpEffect();
}
};
self.dash = function () {
if (self.dashCooldown <= 0) {
self.velocityX = 15;
self.isDashing = true;
self.dashCooldown = 30;
LK.getSound('dash').play();
self.createDashEffect();
tween(self, {
velocityX: 0
}, {
duration: 400
});
LK.setTimeout(function () {
self.isDashing = false;
}, 400);
}
};
self.createJumpEffect = function () {
for (var i = 0; i < 5; i++) {
var particle = new Particle();
particle.x = self.x + (Math.random() - 0.5) * 40;
particle.y = self.y + 20;
particle.velocityY = Math.random() * 5 + 2;
particle.velocityX = (Math.random() - 0.5) * 8;
game.addChild(particle);
particles.push(particle);
}
};
self.createDashEffect = function () {
for (var i = 0; i < 8; i++) {
var particle = new Particle();
particle.x = self.x - 30;
particle.y = self.y + (Math.random() - 0.5) * 40;
particle.velocityY = (Math.random() - 0.5) * 6;
particle.velocityX = -Math.random() * 10 - 5;
game.addChild(particle);
particles.push(particle);
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x0a0a0a
});
/****
* Game Code
****/
// Game variables
var player;
var obstacles = [];
var platforms = [];
var particles = [];
var groundLevel = 2200;
var gameSpeed = 6;
var spawnTimer = 0;
var beatTimer = 0;
var beatInterval = 60; // 60 frames = 1 second at 60fps
var beatPulse = 0;
var combo = 0;
var perfectHits = 0;
// UI
var scoreText = new Text2('Score: 0', {
size: 80,
fill: 0x00FFFF
});
scoreText.anchor.set(0, 0);
scoreText.x = 100;
scoreText.y = 100;
LK.gui.topLeft.addChild(scoreText);
var comboText = new Text2('Combo: 0', {
size: 60,
fill: 0xFFFF00
});
comboText.anchor.set(0, 0);
comboText.x = 100;
comboText.y = 200;
LK.gui.topLeft.addChild(comboText);
// Create ground
var ground = [];
for (var i = 0; i < 10; i++) {
var groundPiece = LK.getAsset('ground', {
anchorX: 0,
anchorY: 0
});
groundPiece.x = i * 300;
groundPiece.y = groundLevel;
ground.push(groundPiece);
game.addChild(groundPiece);
}
// Create player
player = new Player();
player.x = 300;
player.y = groundLevel - 30;
game.addChild(player);
// Background pulse effect
function updateBackgroundPulse() {
var intensity = beatPulse * 0.3;
var color = Math.floor(intensity * 255);
game.setBackgroundColor(color << 16 | color << 8 | Math.floor(intensity * 100));
}
// Spawn obstacles on beat
function spawnObstacle() {
var obstacle = new Obstacle();
obstacle.x = 2200;
obstacle.y = groundLevel;
obstacles.push(obstacle);
game.addChild(obstacle);
}
// Spawn platforms
function spawnPlatform() {
var platform = new Platform();
platform.x = 2200;
platform.y = groundLevel - 150 - Math.random() * 100;
platforms.push(platform);
game.addChild(platform);
}
// Check collisions
function checkCollisions() {
// Obstacle collisions
for (var i = obstacles.length - 1; i >= 0; i--) {
var obstacle = obstacles[i];
if (player.intersects(obstacle) && !player.isDashing) {
LK.getSound('failureMiss').play();
LK.effects.flashScreen(0xff0000, 500);
combo = 0;
LK.setScore(Math.max(0, LK.getScore() - 50));
// Remove obstacle
obstacle.destroy();
obstacles.splice(i, 1);
}
}
}
// Beat detection and rhythm mechanics
function updateBeat() {
beatTimer++;
// Simple beat simulation (in real game this would sync with music)
if (beatTimer >= beatInterval) {
beatTimer = 0;
beatPulse = 1;
// Spawn obstacles on beat
if (Math.random() < 0.7) {
spawnObstacle();
}
// Spawn platforms occasionally
if (Math.random() < 0.3) {
spawnPlatform();
}
}
// Beat pulse decay
beatPulse *= 0.9;
}
// Touch controls
game.down = function (x, y, obj) {
if (x < 1024) {
// Left side - jump
player.jump();
// Check if jump was on beat
if (beatPulse > 0.7) {
perfectHits++;
combo++;
LK.setScore(LK.getScore() + 10 + combo * 2);
LK.getSound('successHit').play();
LK.effects.flashObject(player, 0x00ff00, 200);
}
} else {
// Right side - dash
player.dash();
// Check if dash was on beat
if (beatPulse > 0.7) {
perfectHits++;
combo++;
LK.setScore(LK.getScore() + 15 + combo * 3);
LK.getSound('successHit').play();
LK.effects.flashObject(player, 0xffff00, 200);
}
}
};
// Main game loop
game.update = function () {
updateBeat();
updateBackgroundPulse();
checkCollisions();
// Update ground
for (var i = 0; i < ground.length; i++) {
ground[i].x -= gameSpeed;
if (ground[i].x <= -300) {
ground[i].x += 3000;
}
}
// Update and remove obstacles
for (var i = obstacles.length - 1; i >= 0; i--) {
if (obstacles[i].x < -100) {
obstacles[i].destroy();
obstacles.splice(i, 1);
// Bonus points for passing obstacles
LK.setScore(LK.getScore() + 5);
}
}
// Update and remove platforms
for (var i = platforms.length - 1; i >= 0; i--) {
if (platforms[i].x < -200) {
platforms[i].destroy();
platforms.splice(i, 1);
}
}
// Update and remove particles
for (var i = particles.length - 1; i >= 0; i--) {
if (particles[i].shouldDestroy) {
particles[i].destroy();
particles.splice(i, 1);
}
}
// Update UI
scoreText.setText('Score: ' + LK.getScore());
comboText.setText('Combo: ' + combo);
// Gradually increase difficulty
if (LK.ticks % 1800 == 0) {
// Every 30 seconds
gameSpeed += 0.5;
beatInterval = Math.max(30, beatInterval - 2);
}
// Game over condition (if player falls off screen)
if (player.y > 2732 + 100) {
LK.showGameOver();
}
// Win condition
if (LK.getScore() >= 1000) {
LK.showYouWin();
}
};
// Start the music
LK.playMusic('mainBgMusic');
; /****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Obstacle = Container.expand(function () {
var self = Container.call(this);
var obstacleGfx = self.attachAsset('obstacle', {
anchorX: 0.5,
anchorY: 1
});
self.speed = -6;
self.pulsePhase = 0;
self.update = function () {
self.x += self.speed;
// Pulse effect
self.pulsePhase += 0.15;
var scale = 1 + Math.sin(self.pulsePhase) * 0.1;
obstacleGfx.scaleX = scale;
obstacleGfx.scaleY = scale;
// Beat sync glow
if (beatPulse > 0.5) {
obstacleGfx.tint = 0xffffff;
} else {
obstacleGfx.tint = 0xff0044;
}
};
return self;
});
var Particle = Container.expand(function () {
var self = Container.call(this);
var particleGfx = self.attachAsset('particle', {
anchorX: 0.5,
anchorY: 0.5
});
self.velocityX = 0;
self.velocityY = 0;
self.life = 60;
self.maxLife = 60;
self.update = function () {
self.x += self.velocityX;
self.y += self.velocityY;
self.velocityY += 0.2;
self.life--;
particleGfx.alpha = self.life / self.maxLife;
if (self.life <= 0) {
self.shouldDestroy = true;
}
};
return self;
});
var Platform = Container.expand(function () {
var self = Container.call(this);
var platformGfx = self.attachAsset('platform', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = -6;
self.glowPhase = 0;
self.update = function () {
self.x += self.speed;
// Glow effect
self.glowPhase += 0.1;
platformGfx.alpha = 0.7 + Math.sin(self.glowPhase) * 0.3;
};
return self;
});
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGfx = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
self.velocityY = 0;
self.velocityX = 0;
self.isGrounded = false;
self.isDashing = false;
self.dashCooldown = 0;
self.glowPhase = 0;
self.update = function () {
// Gravity
if (!self.isGrounded) {
self.velocityY += 0.8;
}
// Apply velocity
self.y += self.velocityY;
self.x += self.velocityX;
// Ground collision
if (self.y >= groundLevel - 30) {
self.y = groundLevel - 30;
self.velocityY = 0;
self.isGrounded = true;
}
// Dash cooldown
if (self.dashCooldown > 0) {
self.dashCooldown--;
}
// Glow effect
self.glowPhase += 0.1;
playerGfx.alpha = 0.8 + Math.sin(self.glowPhase) * 0.2;
// Keep player on screen
if (self.x < 0) self.x = 0;
if (self.x > 2048) self.x = 2048;
};
self.jump = function () {
if (self.isGrounded) {
self.velocityY = -18;
self.isGrounded = false;
LK.getSound('jump').play();
self.createJumpEffect();
}
};
self.dash = function () {
if (self.dashCooldown <= 0) {
self.velocityX = 15;
self.isDashing = true;
self.dashCooldown = 30;
LK.getSound('dash').play();
self.createDashEffect();
tween(self, {
velocityX: 0
}, {
duration: 400
});
LK.setTimeout(function () {
self.isDashing = false;
}, 400);
}
};
self.createJumpEffect = function () {
for (var i = 0; i < 5; i++) {
var particle = new Particle();
particle.x = self.x + (Math.random() - 0.5) * 40;
particle.y = self.y + 20;
particle.velocityY = Math.random() * 5 + 2;
particle.velocityX = (Math.random() - 0.5) * 8;
game.addChild(particle);
particles.push(particle);
}
};
self.createDashEffect = function () {
for (var i = 0; i < 8; i++) {
var particle = new Particle();
particle.x = self.x - 30;
particle.y = self.y + (Math.random() - 0.5) * 40;
particle.velocityY = (Math.random() - 0.5) * 6;
particle.velocityX = -Math.random() * 10 - 5;
game.addChild(particle);
particles.push(particle);
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x0a0a0a
});
/****
* Game Code
****/
// Game variables
var player;
var obstacles = [];
var platforms = [];
var particles = [];
var groundLevel = 2200;
var gameSpeed = 6;
var spawnTimer = 0;
var beatTimer = 0;
var beatInterval = 60; // 60 frames = 1 second at 60fps
var beatPulse = 0;
var combo = 0;
var perfectHits = 0;
// UI
var scoreText = new Text2('Score: 0', {
size: 80,
fill: 0x00FFFF
});
scoreText.anchor.set(0, 0);
scoreText.x = 100;
scoreText.y = 100;
LK.gui.topLeft.addChild(scoreText);
var comboText = new Text2('Combo: 0', {
size: 60,
fill: 0xFFFF00
});
comboText.anchor.set(0, 0);
comboText.x = 100;
comboText.y = 200;
LK.gui.topLeft.addChild(comboText);
// Create ground
var ground = [];
for (var i = 0; i < 10; i++) {
var groundPiece = LK.getAsset('ground', {
anchorX: 0,
anchorY: 0
});
groundPiece.x = i * 300;
groundPiece.y = groundLevel;
ground.push(groundPiece);
game.addChild(groundPiece);
}
// Create player
player = new Player();
player.x = 300;
player.y = groundLevel - 30;
game.addChild(player);
// Background pulse effect
function updateBackgroundPulse() {
var intensity = beatPulse * 0.3;
var color = Math.floor(intensity * 255);
game.setBackgroundColor(color << 16 | color << 8 | Math.floor(intensity * 100));
}
// Spawn obstacles on beat
function spawnObstacle() {
var obstacle = new Obstacle();
obstacle.x = 2200;
obstacle.y = groundLevel;
obstacles.push(obstacle);
game.addChild(obstacle);
}
// Spawn platforms
function spawnPlatform() {
var platform = new Platform();
platform.x = 2200;
platform.y = groundLevel - 150 - Math.random() * 100;
platforms.push(platform);
game.addChild(platform);
}
// Check collisions
function checkCollisions() {
// Obstacle collisions
for (var i = obstacles.length - 1; i >= 0; i--) {
var obstacle = obstacles[i];
if (player.intersects(obstacle) && !player.isDashing) {
LK.getSound('failureMiss').play();
LK.effects.flashScreen(0xff0000, 500);
combo = 0;
LK.setScore(Math.max(0, LK.getScore() - 50));
// Remove obstacle
obstacle.destroy();
obstacles.splice(i, 1);
}
}
}
// Beat detection and rhythm mechanics
function updateBeat() {
beatTimer++;
// Simple beat simulation (in real game this would sync with music)
if (beatTimer >= beatInterval) {
beatTimer = 0;
beatPulse = 1;
// Spawn obstacles on beat
if (Math.random() < 0.7) {
spawnObstacle();
}
// Spawn platforms occasionally
if (Math.random() < 0.3) {
spawnPlatform();
}
}
// Beat pulse decay
beatPulse *= 0.9;
}
// Touch controls
game.down = function (x, y, obj) {
if (x < 1024) {
// Left side - jump
player.jump();
// Check if jump was on beat
if (beatPulse > 0.7) {
perfectHits++;
combo++;
LK.setScore(LK.getScore() + 10 + combo * 2);
LK.getSound('successHit').play();
LK.effects.flashObject(player, 0x00ff00, 200);
}
} else {
// Right side - dash
player.dash();
// Check if dash was on beat
if (beatPulse > 0.7) {
perfectHits++;
combo++;
LK.setScore(LK.getScore() + 15 + combo * 3);
LK.getSound('successHit').play();
LK.effects.flashObject(player, 0xffff00, 200);
}
}
};
// Main game loop
game.update = function () {
updateBeat();
updateBackgroundPulse();
checkCollisions();
// Update ground
for (var i = 0; i < ground.length; i++) {
ground[i].x -= gameSpeed;
if (ground[i].x <= -300) {
ground[i].x += 3000;
}
}
// Update and remove obstacles
for (var i = obstacles.length - 1; i >= 0; i--) {
if (obstacles[i].x < -100) {
obstacles[i].destroy();
obstacles.splice(i, 1);
// Bonus points for passing obstacles
LK.setScore(LK.getScore() + 5);
}
}
// Update and remove platforms
for (var i = platforms.length - 1; i >= 0; i--) {
if (platforms[i].x < -200) {
platforms[i].destroy();
platforms.splice(i, 1);
}
}
// Update and remove particles
for (var i = particles.length - 1; i >= 0; i--) {
if (particles[i].shouldDestroy) {
particles[i].destroy();
particles.splice(i, 1);
}
}
// Update UI
scoreText.setText('Score: ' + LK.getScore());
comboText.setText('Combo: ' + combo);
// Gradually increase difficulty
if (LK.ticks % 1800 == 0) {
// Every 30 seconds
gameSpeed += 0.5;
beatInterval = Math.max(30, beatInterval - 2);
}
// Game over condition (if player falls off screen)
if (player.y > 2732 + 100) {
LK.showGameOver();
}
// Win condition
if (LK.getScore() >= 1000) {
LK.showYouWin();
}
};
// Start the music
LK.playMusic('mainBgMusic');
;
2d rock for game. In-Game asset. 2d. High contrast. No shadows
agaç gövdesi 2d. In-Game asset. 2d. High contrast. No shadows
bush 2d. In-Game asset. 2d. High contrast. No shadows
nehiri kaldır
oxygen tank 2d. In-Game asset. 2d. High contrast. No shadows
shark shadow 2d. In-Game asset. 2d. High contrast. No shadows
2 yapraklı deniz yosunu 2d. In-Game asset. 2d. High contrast. No shadows
piranha 2d. In-Game asset. 2d. High contrast. No shadows
deniz mercanı 2d. In-Game asset. 2d. High contrast. No shadows
jump
Sound effect
dash
Sound effect
failureMiss
Sound effect
mainBgMusic
Music
skyLevelMusic
Music
speedMusic
Music
natureMusic
Music
jumpNature
Sound effect
jumpUnderwater
Sound effect
dashNature
Sound effect
dashUnderwater
Sound effect
underwaterMusic
Music
jumpSpeed
Sound effect
dashSpeed
Sound effect