User prompt
Add StartSound sound to startup selection screen
User prompt
add music for selection screen at startup
User prompt
Lower the volume of the end game music
User prompt
Increase the flap and bounce sound a lot
User prompt
Increase the flap and bounce sound a lot
User prompt
Balance the volume of the flap and bounce sound with the volume of the endgame sound
User prompt
Increase flap and bounce sound
User prompt
Make the end game music 2.7 seconds
User prompt
Extend the end game music by 3 seconds
User prompt
lower the volume of the end game music
User prompt
add dying effect
User prompt
change the death effect to make it cool
User prompt
add dying effect
User prompt
Please fix the bug: 'TypeError: storage.set is not a function' in or related to this line: 'storage.set('record', record);' Line Number: 282 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'storage.get is not a function' in or related to this line: 'storage.get('record', function (val) {' Line Number: 141 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'storage.load is not a function' in or related to this line: 'storage.load('record', function (val) {' Line Number: 141
User prompt
Please fix the bug: 'storage.get is not a function' in or related to this line: 'var record = storage.get('record') || 0;' Line Number: 140
User prompt
Please fix the bug: 'storage.getItem is not a function' in or related to this line: 'var record = storage.getItem('record') || 0;' Line Number: 140
User prompt
Please fix the bug: 'storage.get is not a function' in or related to this line: 'var record = storage.get('record') || 0;' Line Number: 140
User prompt
add record counter
User prompt
Let it be pink themed (texts etc.)
User prompt
Shrink the text "Hangimizle oynamak istersin"
User prompt
Write "Hangimizle oynamak istersin" instead of bird
User prompt
move the selection screen to the center of the screen
User prompt
Add one more character, have 2 birds and the player can select it on the screen before the game starts
/**** * Plugins ****/ var storage = LK.import("@upit/storage.v1"); /**** * Classes ****/ var Bird = Container.expand(function (birdType) { var self = Container.call(this); // Default to 'bird' if not specified var assetId = birdType === 'bird2' ? 'bird2' : 'bird'; var birdGraphics = self.attachAsset(assetId, { anchorX: 0.5, anchorY: 0.5 }); self.xSpeed = 10.9375; self.ySpeed = -20; self.gravity = 1; self.lift = -15; self.flap = function () { self.ySpeed = self.lift * 1.5; LK.getSound('flap').play(); }; self._update_migrated = function () { if (game.isMouseDown) { self.ySpeed += self.gravity / 3; } else { self.ySpeed += self.gravity; } self.y += self.ySpeed; self.x += self.xSpeed; if (self.y <= 0 || self.y >= 2732) { self.speed = -self.speed; } var targetRotation = Math.atan2(self.ySpeed, self.xSpeed * self.scale.x) / 2; birdGraphics.rotation += (targetRotation - birdGraphics.rotation) / 10; }; self.flip = function () { self.scale.x *= -1; }; }); var Obstacle = Container.expand(function () { var self = Container.call(this); var obstacleShadow = self.attachAsset('obstacleShadow', { anchorX: 0.5, anchorY: 0.5 }); obstacleShadow.rotation = Math.PI / 4; var obstacleShadow2 = self.attachAsset('obstacleShadow2', { anchorX: 0.5, anchorY: 0.5 }); obstacleShadow2.rotation = Math.PI / 4; obstacleShadow2.y = -7; var obstacleGraphics = self.attachAsset('obstacle', { anchorX: 0.5, anchorY: 0.5 }); obstacleGraphics.rotation = Math.PI / 4; self.speed = 5; self._move_migrated = function (speed) { self.y += speed; }; }); var Wall = Container.expand(function () { var self = Container.call(this); var wallGraphics = self.attachAsset('wall', { anchorX: 0.5, anchorY: 0.5 }); }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ var tutorialTextWhite = new Text2('Tap to Flap\nHold to Float', { size: 150, fill: '#ffb6e6', //{B} // light pink font: 'Impact', align: 'center' }); tutorialTextWhite.anchor.set(.5, 1); tutorialTextWhite.x = -4; tutorialTextWhite.y = -62; LK.gui.bottom.addChild(tutorialTextWhite); var tutorialText = new Text2('Tap to Flap\nHold to Float', { size: 150, fill: '#e75480', //{G} // vivid pink font: 'Impact', dropShadow: true, dropShadowColor: '#ffb6e6', //{J} // light pink shadow dropShadowBlur: 5, dropShadowDistance: 7, dropShadowAngle: 0, align: 'center' }); tutorialText.anchor.set(.5, 1); tutorialText.y = -50; LK.gui.bottom.addChild(tutorialText); game.score = 0; game.obstacleSpeed = 5; game.obstacleSpeedIncrease = 0.005; game.checkObstacleCollision = function (obstacles) { for (var i = 0; i < obstacles.length; i++) { obstacles[i]._move_migrated(); var dist = Math.sqrt(Math.pow(bird.x - obstacles[i].x, 2) + Math.pow(bird.y - obstacles[i].y, 2)); if (dist < 280) { LK.setScore(game.score); LK.getSound('gameOverJingle').play(); LK.effects.flashScreen(0xff0000, 800); LK.setTimeout(function () { LK.showGameOver(); }, 800); return; } } }; game.setBackgroundColor(0xffe0f0); // very light pink background var record = typeof storage.record === 'number' ? storage.record : 0; var scoreText = new Text2('0', { size: 150, fill: '#e75480', //{V} // vivid pink font: 'Impact', dropShadow: true, dropShadowColor: '#ffb6e6', //{Y} // light pink shadow dropShadowBlur: 5, dropShadowDistance: 7, dropShadowAngle: 0 }); scoreText.anchor.set(.5, 0); LK.gui.top.addChild(scoreText); var scoreText2 = new Text2('0', { size: 150, fill: '#ffb6e6', //{14} // light pink font: 'Impact' }); scoreText2.anchor.set(.5, 0); scoreText2.x = -4; scoreText2.y = -5; LK.gui.top.addChild(scoreText2); // Record (high score) text var recordText = new Text2('REKOR: ' + record, { size: 80, fill: '#e75480', font: 'Impact', dropShadow: true, dropShadowColor: '#ffb6e6', dropShadowBlur: 5, dropShadowDistance: 7, dropShadowAngle: 0 }); recordText.anchor.set(0.5, 0); recordText.y = 140; LK.gui.top.addChild(recordText); LK.gui.top.addChild(scoreText); // Character select state var characterSelected = false; var selectedBirdType = null; var bird = null; // Create character select UI var selectText = new Text2('Hangimizle oynamak istersin', { size: 80, fill: '#e75480', //{17} // vivid pink font: 'Impact', align: 'center' }); selectText.anchor.set(0.5, 1); selectText.x = 0; selectText.y = -200; LK.gui.center.addChild(selectText); var bird1Preview = LK.getAsset('bird', { anchorX: 0.5, anchorY: 0.5 }); bird1Preview.x = -200; bird1Preview.y = 200; bird1Preview.scaleX = 2; bird1Preview.scaleY = 2; LK.gui.center.addChild(bird1Preview); var bird2Preview = LK.getAsset('bird2', { anchorX: 0.5, anchorY: 0.5 }); bird2Preview.x = 200; bird2Preview.y = 200; bird2Preview.scaleX = 2; bird2Preview.scaleY = 2; LK.gui.center.addChild(bird2Preview); // Add touch/click handlers for selection bird1Preview.interactive = true; bird2Preview.interactive = true; bird1Preview.down = function (x, y, obj) { if (!characterSelected) { selectedBirdType = 'bird'; startGameWithSelectedBird(); } }; bird2Preview.down = function (x, y, obj) { if (!characterSelected) { selectedBirdType = 'bird2'; startGameWithSelectedBird(); } }; function startGameWithSelectedBird() { characterSelected = true; // Remove selection UI LK.gui.center.removeChild(selectText); LK.gui.center.removeChild(bird1Preview); LK.gui.center.removeChild(bird2Preview); // Add the selected bird to the game bird = game.addChild(new Bird(selectedBirdType)); bird.x = 1024; bird.y = 1366; // Continue with the rest of the game setup leftWall = game.addChild(new Wall()); leftWall.x = 0; leftWall.y = 1366; rightWall = game.addChild(new Wall()); rightWall.x = 2048; rightWall.y = 1366; leftObstacles = []; rightObstacles = []; obstacleSpawnRandomness = 120; obstacleSpawnRandomnessDecrease = 0.025 * (2 / 3); obstacleSpawnY = -500; leftObstacleSpawnTime = Math.floor(Math.random() * obstacleSpawnRandomness) + obstacleSpawnRandomness; rightObstacleSpawnTime = Math.floor(Math.random() * obstacleSpawnRandomness) + obstacleSpawnRandomness; game.isMouseDown = false; } // Only allow input after character is selected game.down = function (x, y, obj) { if (characterSelected && bird) { bird.flap(); game.isMouseDown = true; } }; game.up = function (x, y, obj) { if (characterSelected) { game.isMouseDown = false; } }; game.update = function () { if (!characterSelected || !bird) { // Don't run gameplay logic until a bird is selected return; } bird._update_migrated(); if (game.score > 2) { tutorialText.y += 5; tutorialTextWhite.y += 5; } scoreText.setText(game.score); scoreText2.setText(game.score); // Update record if needed if (game.score > record) { record = game.score; storage.record = record; recordText.setText('REKOR: ' + record); } game.obstacleSpeed += game.obstacleSpeedIncrease; obstacleSpawnRandomness -= obstacleSpawnRandomnessDecrease; if (obstacleSpawnRandomness < 20) { obstacleSpawnRandomness = 20; } if (LK.ticks >= leftObstacleSpawnTime) { var newObstacle = game.addChildAt(new Obstacle(), 0); newObstacle.x = 0; newObstacle.y = obstacleSpawnY; leftObstacles.push(newObstacle); leftObstacleSpawnTime += Math.floor(Math.random() * obstacleSpawnRandomness) + obstacleSpawnRandomness; } if (LK.ticks >= rightObstacleSpawnTime) { var newObstacle = game.addChildAt(new Obstacle(), 0); newObstacle.x = 2048; newObstacle.y = -newObstacle.height; rightObstacles.push(newObstacle); rightObstacleSpawnTime += Math.floor(Math.random() * obstacleSpawnRandomness) + obstacleSpawnRandomness; } if (bird.intersects(leftWall) && bird.xSpeed < 0 || bird.intersects(rightWall) && bird.xSpeed > 0) { bird.xSpeed = -bird.xSpeed; bird.flip(); game.score++; LK.setScore(game.score); LK.getSound('bounce').play(); } for (var i = leftObstacles.length - 1; i >= 0; i--) { leftObstacles[i]._move_migrated(game.obstacleSpeed); if (leftObstacles[i].y > 3232) { leftObstacles[i].destroy(); leftObstacles.splice(i, 1); } } for (var i = rightObstacles.length - 1; i >= 0; i--) { rightObstacles[i]._move_migrated(game.obstacleSpeed); if (rightObstacles[i].y > 3232) { rightObstacles[i].destroy(); rightObstacles.splice(i, 1); } } game.checkObstacleCollision(leftObstacles); game.checkObstacleCollision(rightObstacles); if (bird.y < 0 || bird.y > 2732) { LK.setScore(game.score); LK.getSound('gameOverJingle').play(); LK.effects.flashScreen(0xff0000, 800); LK.setTimeout(function () { LK.showGameOver(); }, 800); return; } };
===================================================================
--- original.js
+++ change.js
@@ -117,9 +117,13 @@
var dist = Math.sqrt(Math.pow(bird.x - obstacles[i].x, 2) + Math.pow(bird.y - obstacles[i].y, 2));
if (dist < 280) {
LK.setScore(game.score);
LK.getSound('gameOverJingle').play();
- LK.showGameOver();
+ LK.effects.flashScreen(0xff0000, 800);
+ LK.setTimeout(function () {
+ LK.showGameOver();
+ }, 800);
+ return;
}
}
};
game.setBackgroundColor(0xffe0f0); // very light pink background
@@ -312,7 +316,11 @@
game.checkObstacleCollision(rightObstacles);
if (bird.y < 0 || bird.y > 2732) {
LK.setScore(game.score);
LK.getSound('gameOverJingle').play();
- LK.showGameOver();
+ LK.effects.flashScreen(0xff0000, 800);
+ LK.setTimeout(function () {
+ LK.showGameOver();
+ }, 800);
+ return;
}
};
\ No newline at end of file
Dusty pink wall with hearts inside . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat Let the hearts be hearts of vibrant colors and various pink emojis and let the wall be square
powder pink square. In-Game asset. 2d. High contrast. No shadows
pixel sun glasses . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
brown beard. In-Game asset. 2d. High contrast. No shadows
king crown. In-Game asset. 2d. High contrast. No shadows
bıyık. In-Game asset. 2d. High contrast. No shadows
gri tonlarında şapka. In-Game asset. 2d. High contrast. No shadows
red rose realistic. In-Game asset. 2d. High contrast. No shadows
Daisy Bouquet Realistic. In-Game asset. 2d. High contrast. No shadows
pink flower bouquet realistic. In-Game asset. 2d. High contrast. No shadows