User prompt
çizgileri kaldır sadece objenin tehlikeli olduğunu belli et ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
bir tehdit olduğunu belli edicek etrafına kırmızı çizgiler ekle ve dönmesin biraz daha uzunlamasına dursun ve paralar onunla aynı hizada olmasın
User prompt
aralarda rastgele engeller çıksın
User prompt
coin ekle
Remix started
Copy FlipFlap Bird
/**** * Classes ****/ var Bird = Container.expand(function () { var self = Container.call(this); var birdGraphics = self.attachAsset('bird', { 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 ****/ // Language and Start Screen UI var languageOptions = [{ code: 'en', label: 'English' }, { code: 'tr', label: 'Türkçe' }]; var selectedLanguage = null; var gameStarted = false; // UI containers var startScreenContainer = new Container(); var langTitle = new Text2('Select Language / Dil Seçin', { size: 120, fill: '#3a84f7', font: 'Impact', align: 'center' }); langTitle.anchor.set(0.5, 0.5); langTitle.x = 1024; langTitle.y = 900; startScreenContainer.addChild(langTitle); var langButtons = []; for (var i = 0; i < languageOptions.length; i++) { var btn = new Text2(languageOptions[i].label, { size: 120, fill: '#ffffff', font: 'Impact', align: 'center', dropShadow: true, dropShadowColor: '#222a9a', dropShadowBlur: 5, dropShadowDistance: 7, dropShadowAngle: 0 }); btn.anchor.set(0.5, 0.5); btn.x = 1024 + (i === 0 ? -250 : 250); btn.y = 1100; btn.interactive = true; btn.buttonMode = true; // Closure for event (function (idx, btnObj) { btnObj.down = function (x, y, obj) { selectedLanguage = languageOptions[idx].code; // Highlight selected for (var j = 0; j < langButtons.length; j++) { langButtons[j].setStyle({ fill: j === idx ? '#3a84f7' : '#ffffff' }); } // Show start button if not already if (!startBtn.visible) startBtn.visible = true; }; })(i, btn); langButtons.push(btn); startScreenContainer.addChild(btn); } // Start button var startBtn = new Text2('Start / Başla', { size: 140, fill: '#3a84f7', font: 'Impact', align: 'center', dropShadow: true, dropShadowColor: '#222a9a', dropShadowBlur: 5, dropShadowDistance: 7, dropShadowAngle: 0 }); startBtn.anchor.set(0.5, 0.5); startBtn.x = 1024; startBtn.y = 1400; startBtn.visible = false; startBtn.interactive = true; startBtn.buttonMode = true; startBtn.down = function (x, y, obj) { if (selectedLanguage) { gameStarted = true; startScreenContainer.visible = false; // Optionally, set tutorial text based on language if (selectedLanguage === 'tr') { tutorialTextWhite.setText('Zıplamak için dokun\nSüzülmek için basılı tut'); tutorialText.setText('Zıplamak için dokun\nSüzülmek için basılı tut'); } else { tutorialTextWhite.setText('Tap to Flap\nHold to Float'); tutorialText.setText('Tap to Flap\nHold to Float'); } tutorialText.visible = true; tutorialTextWhite.visible = true; } }; startScreenContainer.addChild(startBtn); // Add to stage game.addChild(startScreenContainer); // Hide tutorial until game starts var tutorialTextWhite = new Text2('Tap to Flap\nHold to Float', { size: 150, fill: '#ffffff', font: 'Impact', align: 'center' }); tutorialTextWhite.anchor.set(.5, 1); tutorialTextWhite.x = -4; tutorialTextWhite.y = -62; tutorialTextWhite.visible = false; LK.gui.bottom.addChild(tutorialTextWhite); var tutorialText = new Text2('Tap to Flap\nHold to Float', { size: 150, fill: '#3a84f7', font: 'Impact', dropShadow: true, dropShadowColor: '#222a9a', dropShadowBlur: 5, dropShadowDistance: 7, dropShadowAngle: 0, align: 'center' }); tutorialText.anchor.set(.5, 1); tutorialText.y = -50; tutorialText.visible = false; LK.gui.bottom.addChild(tutorialText); // Level definitions var levels = [{ name: "Easy", obstacleSpeed: 5, obstacleSpeedIncrease: 0.005, obstacleSpawnRandomness: 120, obstacleSpawnRandomnessDecrease: 0.025 * (2 / 3), backgroundColor: 0xadd8e6, scoreToNext: 10 }, { name: "Medium", obstacleSpeed: 7, obstacleSpeedIncrease: 0.008, obstacleSpawnRandomness: 90, obstacleSpawnRandomnessDecrease: 0.035, backgroundColor: 0x87ceeb, scoreToNext: 20 }, { name: "Hard", obstacleSpeed: 10, obstacleSpeedIncrease: 0.012, obstacleSpawnRandomness: 60, obstacleSpawnRandomnessDecrease: 0.05, backgroundColor: 0x4682b4, scoreToNext: 9999 // Last level, no next }]; var currentLevelIndex = 0; var currentLevel = levels[currentLevelIndex]; function applyLevel(level) { game.obstacleSpeed = level.obstacleSpeed; game.obstacleSpeedIncrease = level.obstacleSpeedIncrease; obstacleSpawnRandomness = level.obstacleSpawnRandomness; obstacleSpawnRandomnessDecrease = level.obstacleSpawnRandomnessDecrease; game.setBackgroundColor(level.backgroundColor); } game.score = 0; applyLevel(currentLevel); 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.showGameOver(); } } }; game.setBackgroundColor(currentLevel.backgroundColor); var scoreText = new Text2('0', { size: 150, fill: '#3a84f7', font: 'Impact', dropShadow: true, dropShadowColor: '#222a9a', dropShadowBlur: 5, dropShadowDistance: 7, dropShadowAngle: 0 }); scoreText.anchor.set(.5, 0); LK.gui.top.addChild(scoreText); var scoreText2 = new Text2('0', { size: 150, fill: '#ffffff', font: 'Impact' }); scoreText2.anchor.set(.5, 0); scoreText2.x = -4; scoreText2.y = -5; LK.gui.top.addChild(scoreText2); LK.gui.top.addChild(scoreText); var bird = game.addChild(new Bird()); var leftWall = game.addChild(new Wall()); leftWall.x = 0; leftWall.y = 1366; var rightWall = game.addChild(new Wall()); rightWall.x = 2048; rightWall.y = 1366; var leftObstacles = [], rightObstacles = []; var obstacleSpawnRandomness = 120; var obstacleSpawnRandomnessDecrease = 0.025 * (2 / 3); var obstacleSpawnY = -500; var leftObstacleSpawnTime = Math.floor(Math.random() * obstacleSpawnRandomness) + obstacleSpawnRandomness; var rightObstacleSpawnTime = Math.floor(Math.random() * obstacleSpawnRandomness) + obstacleSpawnRandomness; bird.x = 1024; bird.y = 1366; game.isMouseDown = false; game.down = function (x, y, obj) { if (!gameStarted) return; bird.flap(); game.isMouseDown = true; }; game.up = function (x, y, obj) { if (!gameStarted) return; game.isMouseDown = false; }; game.update = function () { if (!gameStarted) { // Optionally animate start screen, e.g. blink start button if language selected if (startBtn.visible && LK.ticks % 60 < 30) { startBtn.setStyle({ fill: '#ffffff' }); } else if (startBtn.visible) { startBtn.setStyle({ fill: '#3a84f7' }); } return; } bird._update_migrated(); if (game.score > 2) { tutorialText.y += 5; tutorialTextWhite.y += 5; } scoreText.setText(game.score); scoreText2.setText(game.score); // Level progression if (game.score >= currentLevel.scoreToNext && currentLevelIndex < levels.length - 1) { currentLevelIndex++; currentLevel = levels[currentLevelIndex]; applyLevel(currentLevel); // Optional: show a quick level up text var levelUpText = new Text2('Level ' + (currentLevelIndex + 1) + ': ' + currentLevel.name, { size: 120, fill: '#ffffff', font: 'Impact', dropShadow: true, dropShadowColor: '#222a9a', dropShadowBlur: 5, dropShadowDistance: 7, dropShadowAngle: 0, align: 'center' }); levelUpText.anchor.set(.5, .5); levelUpText.x = 1024; levelUpText.y = 1366; game.addChild(levelUpText); LK.setTimeout(function () { levelUpText.destroy(); }, 1200); } 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.showGameOver(); } };
/****
* Classes
****/
var Bird = Container.expand(function () {
var self = Container.call(this);
var birdGraphics = self.attachAsset('bird', {
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
****/
// Language and Start Screen UI
var languageOptions = [{
code: 'en',
label: 'English'
}, {
code: 'tr',
label: 'Türkçe'
}];
var selectedLanguage = null;
var gameStarted = false;
// UI containers
var startScreenContainer = new Container();
var langTitle = new Text2('Select Language / Dil Seçin', {
size: 120,
fill: '#3a84f7',
font: 'Impact',
align: 'center'
});
langTitle.anchor.set(0.5, 0.5);
langTitle.x = 1024;
langTitle.y = 900;
startScreenContainer.addChild(langTitle);
var langButtons = [];
for (var i = 0; i < languageOptions.length; i++) {
var btn = new Text2(languageOptions[i].label, {
size: 120,
fill: '#ffffff',
font: 'Impact',
align: 'center',
dropShadow: true,
dropShadowColor: '#222a9a',
dropShadowBlur: 5,
dropShadowDistance: 7,
dropShadowAngle: 0
});
btn.anchor.set(0.5, 0.5);
btn.x = 1024 + (i === 0 ? -250 : 250);
btn.y = 1100;
btn.interactive = true;
btn.buttonMode = true;
// Closure for event
(function (idx, btnObj) {
btnObj.down = function (x, y, obj) {
selectedLanguage = languageOptions[idx].code;
// Highlight selected
for (var j = 0; j < langButtons.length; j++) {
langButtons[j].setStyle({
fill: j === idx ? '#3a84f7' : '#ffffff'
});
}
// Show start button if not already
if (!startBtn.visible) startBtn.visible = true;
};
})(i, btn);
langButtons.push(btn);
startScreenContainer.addChild(btn);
}
// Start button
var startBtn = new Text2('Start / Başla', {
size: 140,
fill: '#3a84f7',
font: 'Impact',
align: 'center',
dropShadow: true,
dropShadowColor: '#222a9a',
dropShadowBlur: 5,
dropShadowDistance: 7,
dropShadowAngle: 0
});
startBtn.anchor.set(0.5, 0.5);
startBtn.x = 1024;
startBtn.y = 1400;
startBtn.visible = false;
startBtn.interactive = true;
startBtn.buttonMode = true;
startBtn.down = function (x, y, obj) {
if (selectedLanguage) {
gameStarted = true;
startScreenContainer.visible = false;
// Optionally, set tutorial text based on language
if (selectedLanguage === 'tr') {
tutorialTextWhite.setText('Zıplamak için dokun\nSüzülmek için basılı tut');
tutorialText.setText('Zıplamak için dokun\nSüzülmek için basılı tut');
} else {
tutorialTextWhite.setText('Tap to Flap\nHold to Float');
tutorialText.setText('Tap to Flap\nHold to Float');
}
tutorialText.visible = true;
tutorialTextWhite.visible = true;
}
};
startScreenContainer.addChild(startBtn);
// Add to stage
game.addChild(startScreenContainer);
// Hide tutorial until game starts
var tutorialTextWhite = new Text2('Tap to Flap\nHold to Float', {
size: 150,
fill: '#ffffff',
font: 'Impact',
align: 'center'
});
tutorialTextWhite.anchor.set(.5, 1);
tutorialTextWhite.x = -4;
tutorialTextWhite.y = -62;
tutorialTextWhite.visible = false;
LK.gui.bottom.addChild(tutorialTextWhite);
var tutorialText = new Text2('Tap to Flap\nHold to Float', {
size: 150,
fill: '#3a84f7',
font: 'Impact',
dropShadow: true,
dropShadowColor: '#222a9a',
dropShadowBlur: 5,
dropShadowDistance: 7,
dropShadowAngle: 0,
align: 'center'
});
tutorialText.anchor.set(.5, 1);
tutorialText.y = -50;
tutorialText.visible = false;
LK.gui.bottom.addChild(tutorialText);
// Level definitions
var levels = [{
name: "Easy",
obstacleSpeed: 5,
obstacleSpeedIncrease: 0.005,
obstacleSpawnRandomness: 120,
obstacleSpawnRandomnessDecrease: 0.025 * (2 / 3),
backgroundColor: 0xadd8e6,
scoreToNext: 10
}, {
name: "Medium",
obstacleSpeed: 7,
obstacleSpeedIncrease: 0.008,
obstacleSpawnRandomness: 90,
obstacleSpawnRandomnessDecrease: 0.035,
backgroundColor: 0x87ceeb,
scoreToNext: 20
}, {
name: "Hard",
obstacleSpeed: 10,
obstacleSpeedIncrease: 0.012,
obstacleSpawnRandomness: 60,
obstacleSpawnRandomnessDecrease: 0.05,
backgroundColor: 0x4682b4,
scoreToNext: 9999 // Last level, no next
}];
var currentLevelIndex = 0;
var currentLevel = levels[currentLevelIndex];
function applyLevel(level) {
game.obstacleSpeed = level.obstacleSpeed;
game.obstacleSpeedIncrease = level.obstacleSpeedIncrease;
obstacleSpawnRandomness = level.obstacleSpawnRandomness;
obstacleSpawnRandomnessDecrease = level.obstacleSpawnRandomnessDecrease;
game.setBackgroundColor(level.backgroundColor);
}
game.score = 0;
applyLevel(currentLevel);
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.showGameOver();
}
}
};
game.setBackgroundColor(currentLevel.backgroundColor);
var scoreText = new Text2('0', {
size: 150,
fill: '#3a84f7',
font: 'Impact',
dropShadow: true,
dropShadowColor: '#222a9a',
dropShadowBlur: 5,
dropShadowDistance: 7,
dropShadowAngle: 0
});
scoreText.anchor.set(.5, 0);
LK.gui.top.addChild(scoreText);
var scoreText2 = new Text2('0', {
size: 150,
fill: '#ffffff',
font: 'Impact'
});
scoreText2.anchor.set(.5, 0);
scoreText2.x = -4;
scoreText2.y = -5;
LK.gui.top.addChild(scoreText2);
LK.gui.top.addChild(scoreText);
var bird = game.addChild(new Bird());
var leftWall = game.addChild(new Wall());
leftWall.x = 0;
leftWall.y = 1366;
var rightWall = game.addChild(new Wall());
rightWall.x = 2048;
rightWall.y = 1366;
var leftObstacles = [],
rightObstacles = [];
var obstacleSpawnRandomness = 120;
var obstacleSpawnRandomnessDecrease = 0.025 * (2 / 3);
var obstacleSpawnY = -500;
var leftObstacleSpawnTime = Math.floor(Math.random() * obstacleSpawnRandomness) + obstacleSpawnRandomness;
var rightObstacleSpawnTime = Math.floor(Math.random() * obstacleSpawnRandomness) + obstacleSpawnRandomness;
bird.x = 1024;
bird.y = 1366;
game.isMouseDown = false;
game.down = function (x, y, obj) {
if (!gameStarted) return;
bird.flap();
game.isMouseDown = true;
};
game.up = function (x, y, obj) {
if (!gameStarted) return;
game.isMouseDown = false;
};
game.update = function () {
if (!gameStarted) {
// Optionally animate start screen, e.g. blink start button if language selected
if (startBtn.visible && LK.ticks % 60 < 30) {
startBtn.setStyle({
fill: '#ffffff'
});
} else if (startBtn.visible) {
startBtn.setStyle({
fill: '#3a84f7'
});
}
return;
}
bird._update_migrated();
if (game.score > 2) {
tutorialText.y += 5;
tutorialTextWhite.y += 5;
}
scoreText.setText(game.score);
scoreText2.setText(game.score);
// Level progression
if (game.score >= currentLevel.scoreToNext && currentLevelIndex < levels.length - 1) {
currentLevelIndex++;
currentLevel = levels[currentLevelIndex];
applyLevel(currentLevel);
// Optional: show a quick level up text
var levelUpText = new Text2('Level ' + (currentLevelIndex + 1) + ': ' + currentLevel.name, {
size: 120,
fill: '#ffffff',
font: 'Impact',
dropShadow: true,
dropShadowColor: '#222a9a',
dropShadowBlur: 5,
dropShadowDistance: 7,
dropShadowAngle: 0,
align: 'center'
});
levelUpText.anchor.set(.5, .5);
levelUpText.x = 1024;
levelUpText.y = 1366;
game.addChild(levelUpText);
LK.setTimeout(function () {
levelUpText.destroy();
}, 1200);
}
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.showGameOver();
}
};