User prompt
Player2 adlı görsel arkaplanın ortasına eklenir
User prompt
Player2 adlı görsel sahnin ortasına eklenir
User prompt
Cicek adlı görsel sahneden kaybolursa player2 adlı görselle yer değiştirir
User prompt
Karakterimiz cicek adlı görseli algılarsa player2 adlı görsel sahneye eklenir
User prompt
Karakterimiz cicek görseline dokunursa player2 adlı görsel karakterimizi takip etmeye başlar
User prompt
Eğer karakterimiz cicek adlı görsel ile aynı noktada olursa 'player2' adlı görseli sahnenin sol alt köşesine yerleştir
User prompt
Her şeyi kaydet ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Düşmanların karakterimizi algılama alanlarını azalt
User prompt
Eğer puan 9 ve 9 un katları olursa sahnenin orta noktasına 'cicek' adlı görsel eklenir
User prompt
Puan 9 olduğunda sahnenin ortasına cicek ekle
User prompt
Cicek görseli sinüs eğrisi şeklinde sola doğru hareket ederek karakterimi takip eder puan 9 ve 9 un katları olduğunda
User prompt
Cicek adlı görsel puan 9 olunca sahneye eklenir
User prompt
'player2' adlı görsel karakterimizi takip eder
User prompt
Eğer cicek karakterimiz ciceği geçemezse 'player2' adlı görsel sahnenin ortasına eklenir
User prompt
Cicek karakterimize doğru hareket eder
User prompt
Cicek karakterimize değince oyun bitmez
User prompt
Fakat cicek karakterimize dokununca 'player2' sahnenin sol alt köşesine eklenir
User prompt
Fakat karakterimize doğru hareket eder
User prompt
Cicek adlı görsel düşman gibi davranır
User prompt
Player cicek e dokunursa oyun biter
User prompt
Karakterimiz cicek e dokunursa oyun biter
User prompt
Karakterimiz 'cicek' adlı görsele temas ederse 'cicek' adlı görsel sahneden silinir, kaldırılır
User prompt
Karakterimiz 'cicek' adlı görsele dokunursa karakter sayımız bi tane daha artar
User prompt
'cicek' adlı görsel puan 9 ve dokuzun katlarında gelsin
User prompt
Sayı görselleri bittiğinde baştan başlasın ve düşmanlarla aynı doğrultuda 'cicek' adlı görsel gelsin
/**** * Classes ****/ // Define a class for enemies var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.update = function () { self.x -= self.speed; self.y += Math.sin(self.x / 100) * 10; if (self.x < -50) { self.destroy(); } }; }); //<Assets used in the game will automatically appear here> // Define a class for the player character var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.jumpHeight = 20; self.isJumping = false; self.velocityY = 0; self.update = function () { if (self.isJumping) { self.y += self.velocityY; self.velocityY += 0.7; // Decreased gravity effect by 30% if (self.y >= 2732 / 2) { // Ground level self.y = 2732 / 2; self.isJumping = false; self.velocityY = 0; } } // Move the player diagonally to the middle of the stage in the first move if (self.x < 2048 / 2 && self.y < 2732 / 2) { self.x += self.speed; self.y += self.speed; } else if (!self.isJumping) { if (self.x > 30) { self.x -= 4; } } // Prevent the player from leaving the stage if (self.x < 0) { self.x = 0; } else if (self.x > 2048 - self.width) { self.x = 2048 - self.width; } if (self.y < 0) { self.y = 0; } else if (self.y > 2732 - self.height) { self.y = 2732 - self.height; } }; self.jump = function () { self.isJumping = true; self.velocityY = -self.jumpHeight; }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB // Sky blue background }); /**** * Game Code ****/ // Initialize background var background = game.addChild(LK.getAsset('arkplan', { anchorX: 0.0, anchorY: 0.0, scaleX: 2048 / 100, scaleY: 2732 / 100, x: 0, y: 0 })); // Initialize player var player = game.addChild(new Player()); player.x = 200; player.y = 2732 - player.height - 150; // Add a delay of 2 seconds before the game starts LK.setTimeout(function () { // Make the first jump move automatically player.jump(); }, 2000); // Initialize enemies var enemies = []; var enemySpawnInterval = 100; var enemySpawnCounter = 0; // Create a new Text2 object to display the score var scoreText = new Text2('0', { size: 100, fill: 0xFFFFFF }); // Add the score text to the game GUI at the top right of the screen LK.gui.topRight.addChild(scoreText); scoreText.x = 2048 - 50; // 50 pixels from the right edge scoreText.y = 0; // Handle game updates game.update = function () { player.update(); // Spawn enemies enemySpawnCounter++; if (enemySpawnCounter >= enemySpawnInterval) { var enemy = new Enemy(); enemy.x = 2048; enemy.y = Math.random() * (2732 / 2); enemies.push(enemy); game.addChild(enemy); // Decrease the spawn interval for the next enemy every 10 seconds if (LK.ticks % 600 == 0 && enemySpawnInterval > 10) { enemySpawnInterval -= 10; } enemySpawnCounter = 0; } // Update enemies for (var j = enemies.length - 1; j >= 0; j--) { enemies[j].update(); if (player.intersects(enemies[j])) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); return; } else if (player.x > enemies[j].x && !enemies[j].passed) { enemies[j].passed = true; LK.setScore(LK.getScore() + 1); var currentScore = LK.getScore(); var scoreAssetId = 'Skor' + currentScore % 10; // Restart score images when exhausted game.children.forEach(function (child) { if (child.assetId && child.assetId.startsWith('Skor')) { child.destroy(); } }); var scoreAsset = game.addChild(LK.getAsset(scoreAssetId, { anchorX: 0.5, anchorY: 1.0, x: 2048 / 2, y: 2732 })); LK.setTimeout(function () { scoreAsset.destroy(); }, 1000); // Add 'cicek' image aligned with enemies if (currentScore % 9 === 0) { var cicek = game.addChild(LK.getAsset('cicek', { anchorX: 0.5, anchorY: 0.5, x: enemies[j].x, y: enemies[j].y })); cicek.update = function () { // Move 'cicek' towards the player var dx = player.x - cicek.x; var dy = player.y - cicek.y; var distance = Math.sqrt(dx * dx + dy * dy); var speed = 2; // Speed of 'cicek' cicek.x += dx / distance * speed; cicek.y += dy / distance * speed; // Check for intersection with player if (player.intersects(cicek)) { cicek.destroy(); } }; game.addChild(cicek); } } } }; // Handle player jump game.down = function (x, y, obj) { player.jump(); };
===================================================================
--- original.js
+++ change.js
@@ -128,14 +128,11 @@
// Update enemies
for (var j = enemies.length - 1; j >= 0; j--) {
enemies[j].update();
if (player.intersects(enemies[j])) {
- if (enemies[j].assetId !== 'cicek') {
- // Only trigger game over for non-'cicek' enemies
- LK.effects.flashScreen(0xff0000, 1000);
- LK.showGameOver();
- return;
- }
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.showGameOver();
+ return;
} else if (player.x > enemies[j].x && !enemies[j].passed) {
enemies[j].passed = true;
LK.setScore(LK.getScore() + 1);
var currentScore = LK.getScore();
@@ -163,27 +160,20 @@
y: enemies[j].y
}));
cicek.update = function () {
// Move 'cicek' towards the player
- var directionX = player.x - cicek.x;
- var directionY = player.y - cicek.y;
- var magnitude = Math.sqrt(directionX * directionX + directionY * directionY);
- cicek.x += directionX / magnitude * 5;
- cicek.y += directionY / magnitude * 5;
+ var dx = player.x - cicek.x;
+ var dy = player.y - cicek.y;
+ var distance = Math.sqrt(dx * dx + dy * dy);
+ var speed = 2; // Speed of 'cicek'
+ cicek.x += dx / distance * speed;
+ cicek.y += dy / distance * speed;
+ // Check for intersection with player
if (player.intersects(cicek)) {
cicek.destroy();
- var player2 = game.addChild(LK.getAsset('Player2', {
- anchorX: 0.5,
- anchorY: 0.5,
- x: 50,
- y: 2732 - 50
- }));
}
- if (cicek.x < -50) {
- cicek.destroy();
- }
};
- enemies.push(cicek); // Treat 'cicek' as an enemy
+ game.addChild(cicek);
}
}
}
};