/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Platform boyutları değiştirildi // Ball class to represent the bouncing ball var Ball = Container.expand(function () { var self = Container.call(this); var ballGraphics = self.attachAsset('ball', { anchorX: 0.5, anchorY: 0.5 }); self.speedY = 7; // Başlangıçta biraz daha hızlı (artırıldı) self.speedX = 5; // Başlangıçta biraz daha hızlı (artırıldı) self.platformHits = 0; // Platforma çarpma sayacı self.lastY = self.y; // Initialize lastY to track previous Y position self.update = function () { self.x += self.speedX; self.y += self.speedY; // Bounce off the left and right walls if (self.x <= 0 || self.x >= 2048) { self.speedX *= -1; // Just reverse direction, no speed increase } // Bounce off the top wall if (self.y <= 0) { self.speedY *= -1; // Just reverse direction, no speed increase } // Bounce off the platform if (self.lastY < platform.y - platform.height / 2 && self.y >= platform.y - platform.height / 2 && self.x >= platform.x - platform.width / 2 && self.x <= platform.x + platform.width / 2) { self.speedY *= -1; ballGraphics.tint = Math.random() * 0xFFFFFF; // Change ball color to a random color LK.getSound('Ses').play(); // Play 'Ses' sound when the ball hits the platform self.platformHits += 1; // Platforma çarpma sayısını artır // Eğer platforma 5. kez çarptıysa, hız %15 artsın if (self.platformHits % 5 === 0) { self.speedY *= 1.15; // %15 hız artışı self.speedX *= 1.15; // %15 hız artışı } LK.setScore(LK.getScore() + 1); scoreTxt.setText(LK.getScore()); } // End the game if the score reaches 1000 if (LK.getScore() >= 1000) { LK.effects.flashScreen(0x00ff00, 1000); // Flash screen green to indicate win LK.showYouWin(); // Show "you win" and reset the game } // Game over if the ball falls below the platform if (self.y > 2732) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } // Check for collision with coins for (var i = coins.length - 1; i >= 0; i--) { if (self.intersects(coins[i])) { LK.getSound('2').play(); // Play sound '2' when the ball intersects with a coin coins[i].destroy(); // Remove coin from the game coins.splice(i, 1); // Remove coin from the array LK.setScore(LK.getScore() + 10); // Increase score by 10 scoreTxt.setText(LK.getScore()); // Update score display // Increase speed by 5% for every 10 points scored if (LK.getScore() % 10 === 0) { self.speedY *= 1.05; // Increase Y speed by 5% self.speedX *= 1.05; // Increase X speed by 5% } // Respawn a new coin at a random position var newCoin = game.addChild(new Coin()); newCoin.x = Math.random() * 2048; // Random x position within game width newCoin.y = Math.random() * 1000 + 100; // Random y position within a range coins.push(newCoin); } } self.lastY = self.y; // Update lastY after each update }; }); // Coin class to represent the coins var Coin = Container.expand(function () { var self = Container.call(this); var coinGraphics = self.attachAsset('coin', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Coin logic can be added here if needed }; }); // Platform class to represent the platform var Platform = Container.expand(function () { var self = Container.call(this); self.platformGraphics = self.attachAsset('platform', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Platform movement logic can be added here if needed }; }); /**** * Initialize Game ****/ // Initialize the game with black background var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ // Create a text object to display the message var messageTxt = new Text2("Why not try to finish the game?", { size: 100, fill: 0xFFFFFF }); messageTxt.anchor.set(1, 0); // Anchor to the top-right corner LK.gui.topRight.addChild(messageTxt); // Add the message to the top-right corner of the screen // Use tween to make the message disappear after 10 seconds tween(messageTxt, { alpha: 0 }, { duration: 10000, easing: tween.linear }); // Play background music '1' in a loop LK.playMusic('1', { loop: true }); // Handle game updates var map = LK.getAsset('Map', { anchorX: 0.5, anchorY: 0.5, scaleX: 2048 / 100, // Scale to fit the width of the game scaleY: 2732 / 100, // Scale to fit the height of the game x: 1024, // Center horizontally y: 1366 // Center vertically }); game.addChild(map); // Initialize the ball, platform, and coins // Top, platform ve coin şekilleri tanımlı var ball = game.addChild(new Ball()); ball.x = 1024; // Center horizontally ball.y = 1366; // Start above the platform var platform = game.addChild(new Platform()); platform.x = 1024; // Center horizontally platform.y = 2100; // Platform position near the bottom (adjusted lower) // Initialize coins var coins = []; var coin = game.addChild(new Coin()); coin.x = 1024; // Center the coin horizontally coin.y = 500; // Position the coin near the top coins.push(coin); // Set interval to move coins every 10 seconds if not destroyed LK.setInterval(function () { for (var i = 0; i < coins.length; i++) { if (coins[i]) { coins[i].x = Math.random() * 2048; // Random x position within game width coins[i].y = Math.random() * 1000 + 100; // Random y position within a range } } }, 10000); // Initialize score display var scoreTxt = new Text2('0', { size: 150, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Handle game updates game.update = function () { ball.update(); platform.update(); }; // Handle touch/mouse movement to control the platform game.move = function (x, y, obj) { platform.x = x; };
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
// Platform boyutları değiştirildi
// Ball class to represent the bouncing ball
var Ball = Container.expand(function () {
var self = Container.call(this);
var ballGraphics = self.attachAsset('ball', {
anchorX: 0.5,
anchorY: 0.5
});
self.speedY = 7; // Başlangıçta biraz daha hızlı (artırıldı)
self.speedX = 5; // Başlangıçta biraz daha hızlı (artırıldı)
self.platformHits = 0; // Platforma çarpma sayacı
self.lastY = self.y; // Initialize lastY to track previous Y position
self.update = function () {
self.x += self.speedX;
self.y += self.speedY;
// Bounce off the left and right walls
if (self.x <= 0 || self.x >= 2048) {
self.speedX *= -1; // Just reverse direction, no speed increase
}
// Bounce off the top wall
if (self.y <= 0) {
self.speedY *= -1; // Just reverse direction, no speed increase
}
// Bounce off the platform
if (self.lastY < platform.y - platform.height / 2 && self.y >= platform.y - platform.height / 2 && self.x >= platform.x - platform.width / 2 && self.x <= platform.x + platform.width / 2) {
self.speedY *= -1;
ballGraphics.tint = Math.random() * 0xFFFFFF; // Change ball color to a random color
LK.getSound('Ses').play(); // Play 'Ses' sound when the ball hits the platform
self.platformHits += 1; // Platforma çarpma sayısını artır
// Eğer platforma 5. kez çarptıysa, hız %15 artsın
if (self.platformHits % 5 === 0) {
self.speedY *= 1.15; // %15 hız artışı
self.speedX *= 1.15; // %15 hız artışı
}
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore());
}
// End the game if the score reaches 1000
if (LK.getScore() >= 1000) {
LK.effects.flashScreen(0x00ff00, 1000); // Flash screen green to indicate win
LK.showYouWin(); // Show "you win" and reset the game
}
// Game over if the ball falls below the platform
if (self.y > 2732) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
// Check for collision with coins
for (var i = coins.length - 1; i >= 0; i--) {
if (self.intersects(coins[i])) {
LK.getSound('2').play(); // Play sound '2' when the ball intersects with a coin
coins[i].destroy(); // Remove coin from the game
coins.splice(i, 1); // Remove coin from the array
LK.setScore(LK.getScore() + 10); // Increase score by 10
scoreTxt.setText(LK.getScore()); // Update score display
// Increase speed by 5% for every 10 points scored
if (LK.getScore() % 10 === 0) {
self.speedY *= 1.05; // Increase Y speed by 5%
self.speedX *= 1.05; // Increase X speed by 5%
}
// Respawn a new coin at a random position
var newCoin = game.addChild(new Coin());
newCoin.x = Math.random() * 2048; // Random x position within game width
newCoin.y = Math.random() * 1000 + 100; // Random y position within a range
coins.push(newCoin);
}
}
self.lastY = self.y; // Update lastY after each update
};
});
// Coin class to represent the coins
var Coin = Container.expand(function () {
var self = Container.call(this);
var coinGraphics = self.attachAsset('coin', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Coin logic can be added here if needed
};
});
// Platform class to represent the platform
var Platform = Container.expand(function () {
var self = Container.call(this);
self.platformGraphics = self.attachAsset('platform', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Platform movement logic can be added here if needed
};
});
/****
* Initialize Game
****/
// Initialize the game with black background
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
// Create a text object to display the message
var messageTxt = new Text2("Why not try to finish the game?", {
size: 100,
fill: 0xFFFFFF
});
messageTxt.anchor.set(1, 0); // Anchor to the top-right corner
LK.gui.topRight.addChild(messageTxt); // Add the message to the top-right corner of the screen
// Use tween to make the message disappear after 10 seconds
tween(messageTxt, {
alpha: 0
}, {
duration: 10000,
easing: tween.linear
});
// Play background music '1' in a loop
LK.playMusic('1', {
loop: true
});
// Handle game updates
var map = LK.getAsset('Map', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 2048 / 100,
// Scale to fit the width of the game
scaleY: 2732 / 100,
// Scale to fit the height of the game
x: 1024,
// Center horizontally
y: 1366 // Center vertically
});
game.addChild(map);
// Initialize the ball, platform, and coins
// Top, platform ve coin şekilleri tanımlı
var ball = game.addChild(new Ball());
ball.x = 1024; // Center horizontally
ball.y = 1366; // Start above the platform
var platform = game.addChild(new Platform());
platform.x = 1024; // Center horizontally
platform.y = 2100; // Platform position near the bottom (adjusted lower)
// Initialize coins
var coins = [];
var coin = game.addChild(new Coin());
coin.x = 1024; // Center the coin horizontally
coin.y = 500; // Position the coin near the top
coins.push(coin);
// Set interval to move coins every 10 seconds if not destroyed
LK.setInterval(function () {
for (var i = 0; i < coins.length; i++) {
if (coins[i]) {
coins[i].x = Math.random() * 2048; // Random x position within game width
coins[i].y = Math.random() * 1000 + 100; // Random y position within a range
}
}
}, 10000);
// Initialize score display
var scoreTxt = new Text2('0', {
size: 150,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Handle game updates
game.update = function () {
ball.update();
platform.update();
};
// Handle touch/mouse movement to control the platform
game.move = function (x, y, obj) {
platform.x = x;
};