User prompt
Karakter 2 kat büyüdüğünde hoplama özelliği olmasın
User prompt
Zıplama sesini karakter tam zıplamaya başladığında başlat
User prompt
Tebrikler ekranı çıktığında başka bir müzik olsun
User prompt
Zıplamak sesini karakter her zıpladığında kullan
User prompt
Müziği arka plan olarak kullan
User prompt
Karakter düşmanı yediğinde hiçbir şey belirmesin sadece düşman parçalansın ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Karakter düşmanı yediğinde arka planda yeni karakterler belirsin
User prompt
Arka planda beliren karakterler düşmandan ve normal karakterlerden farklı olsun
User prompt
Arka planda beliren karakterler farklı farklı olsun
User prompt
Karakter her düşman yediğinde arka planda yeni karakterler bilirsin
User prompt
Please fix the bug: 'TypeError: countdownText.setFill is not a function' in or related to this line: 'countdownText.setFill(0xFF9900); // Orange for normal countdown' Line Number: 320
User prompt
Karakter büyüdükten sonra geri 5 ten 0 a geri sayaç başlasın
User prompt
Karakter 2 kat büyüdükten sonra küçüleceği vakti belirtmek için geri sayım olsun ekranda görünecek şekilde ortada olsun
User prompt
Tebrikler ekranı çıktığında karakter yeni bir karaktere dönüşsün ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Karakter 15 düşmanı anlattıktan sonra düşman gelmesin ve karakter yeni bir karakter olsun
User prompt
Karakter 15 tane düşman atlattıktan sonra oyun bitsin ve tebrikler yazısı çıksın
User prompt
Karakter düşmana deydiğinde yenilsin
User prompt
Karakter 2 kat büyüdüğünde normalde durduğu eksenle aynı eksen üzerinde dursun
User prompt
Tebrikler ekranı çıktığında karakter yeni bir karaktere dönüşsün
User prompt
Tebrikler ekranı çıktığında karakter sağa sola hareket etmesin ve dans etmesin sadece yeni karakter olsun
User prompt
Tebrikler ekranı çıktığında düşmanlar gelmesin
User prompt
Tebrikler ekranı çıktığında düşmanlar gelmesin
User prompt
Tebrikler ekranı çıktıktan sonra yeni karakter sadece sağa sola hareket etsin
User prompt
Tebrikler ekranı çıktığında karakter dans etsin yani başka bir karakter olsun
User prompt
Karakter 25 düşmanı atlatınca oyun bitsin ve tebrikler ekranı çıksın
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * 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.passed = false; self.update = function () { self.x -= enemySpeed; if (self.x < -50) { self.destroy(); } }; }); // Define a class for enemy miniatures var EnemyMiniature = Container.expand(function () { var self = Container.call(this); var miniatureGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5, scaleX: 0.3, scaleY: 0.3 }); return self; }); //<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, tint: 0xFFFFFF // Default tint, will be changed on transformation }); var playerJumpingGraphics = LK.getAsset('player_jumping', { anchorX: 0.5, anchorY: 0.5, tint: 0xFFFFFF // Default tint, will be changed on transformation }); var playerTransformedGraphics = LK.getAsset('player_transformed', { anchorX: 0.5, anchorY: 0.5, tint: 0xFF9900 // Orange tint for transformed state }); playerJumpingGraphics.visible = false; playerTransformedGraphics.visible = false; self.addChild(playerJumpingGraphics); self.addChild(playerTransformedGraphics); self.isTransformed = false; self.speed = 5; self.jumpHeight = 40; self.isJumping = false; self.scale.set(1, 1); // Initialize scale for transformation self.velocityY = 0; self.update = function () { if (self.isJumping) { self.y += self.velocityY; self.velocityY += 0.7; // Decreased gravity effect by 30% // Show jumping character playerGraphics.visible = false; playerTransformedGraphics.visible = false; playerJumpingGraphics.visible = true; if (self.y >= 2732 / 2) { // Ground level self.y = 2732 / 2; self.isJumping = false; self.velocityY = 0; // Switch back to appropriate character based on transformation state if (self.isTransformed) { playerTransformedGraphics.visible = true; playerGraphics.visible = false; playerJumpingGraphics.visible = false; } else { playerGraphics.visible = true; playerTransformedGraphics.visible = false; playerJumpingGraphics.visible = false; } } } else { // Show appropriate character when not jumping based on transformation state if (self.isTransformed) { playerTransformedGraphics.visible = true; playerGraphics.visible = false; playerJumpingGraphics.visible = false; } else { playerGraphics.visible = true; playerTransformedGraphics.visible = false; playerJumpingGraphics.visible = false; } } }; self.jump = function () { if (!self.isJumping) { self.isJumping = true; self.velocityY = -self.jumpHeight; } }; self.transform = function (transformed) { self.isTransformed = transformed; if (transformed) { playerGraphics.visible = false; playerJumpingGraphics.visible = false; playerTransformedGraphics.visible = true; // Keep the original tint when transforming playerTransformedGraphics.tint = playerGraphics.tint; } else { playerGraphics.visible = !self.isJumping; playerJumpingGraphics.visible = self.isJumping; playerTransformedGraphics.visible = false; } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB // Sky blue background }); /**** * Game Code ****/ var background = game.addChild(LK.getAsset('background', { anchorX: 0, anchorY: 0 })); background.x = 0; background.y = 0; // Initialize player var player = game.addChild(new Player()); player.x = 200; // Position player on the left side of the screen player.y = 2732 / 2; // Initialize enemies var enemies = []; var enemySpawnInterval = 100; var enemySpawnCounter = 0; var enemySpeed = 5; var speedIncreaseTimer = LK.setInterval(function () { enemySpeed += 1; console.log("Enemy speed increased to: " + enemySpeed); }, 5000); // 5 seconds // Create a new Text2 object to display the score var scoreText = new Text2('0', { size: 100, fill: 0xFFFFFF }); // Create text to display enemy count var enemyCountText = new Text2('Enemies Passed: 0', { size: 60, fill: 0xFFFFFF }); // Add the score text to the game GUI at the top center of the screen LK.gui.top.addChild(scoreText); scoreText.x = 2048 / 2; scoreText.y = 0; // Add enemy count text below score LK.gui.top.addChild(enemyCountText); enemyCountText.x = 2048 / 2; enemyCountText.y = 110; // Initialize enemy passed counter var enemiesPassed = 0; // Variable to track if transformation is in progress var isTransforming = false; // Create a container for enemy miniatures var miniatureContainer = new Container(); LK.gui.topRight.addChild(miniatureContainer); miniatureContainer.x = -50; // Offset from right edge miniatureContainer.y = 50; // Array to track miniatures var enemyMiniatures = []; // Handle game updates game.update = function () { player.update(); // Spawn enemies enemySpawnCounter++; if (enemySpawnCounter >= enemySpawnInterval) { var enemy = new Enemy(); enemy.x = 2048; enemy.y = 2732 / 2; enemies.push(enemy); game.addChild(enemy); // Randomize the spawn interval for the next enemy enemySpawnInterval = Math.floor(Math.random() * 150) + 50; enemySpawnCounter = 0; } // Update enemies for (var j = enemies.length - 1; j >= 0; j--) { enemies[j].update(); // Track last intersection state for clean collision detection if (enemies[j].lastIntersecting === undefined) { enemies[j].lastIntersecting = false; } var currentlyIntersecting = player.intersects(enemies[j]); // Handle collision when player is transformed if (player.isTransformed && currentlyIntersecting && !enemies[j].passed) { // "Eat" the enemy // Create eating animation effect LK.effects.flashObject(enemies[j], 0xFF0000, 300); // Add bonus score for eating enemy LK.setScore(LK.getScore() + 5); scoreText.setText(LK.getScore()); // Create "eaten" text var eatenText = new Text2('+5', { size: 40, fill: 0xFF0000 }); eatenText.anchor.set(0.5, 0.5); eatenText.x = enemies[j].x; eatenText.y = enemies[j].y - 50; game.addChild(eatenText); // Remove eaten text after animation tween(eatenText, { y: eatenText.y - 100, alpha: 0 }, { duration: 800, onFinish: function onFinish() { eatenText.destroy(); } }); // Remove the enemy enemies[j].destroy(); enemies.splice(j, 1); continue; } // If enemy passes player if (player.x > enemies[j].x && !enemies[j].passed) { enemies[j].passed = true; // Increment both counters LK.setScore(LK.getScore() + 1); enemiesPassed++; // Update both text displays scoreText.setText(LK.getScore()); enemyCountText.setText('Enemies Passed: ' + enemiesPassed); // Flash the enemy count text to highlight change LK.effects.flashObject(enemyCountText, 0x00FF00, 300); // Add a miniature of the passed enemy to the top right corner var miniature = new EnemyMiniature(); enemyMiniatures.push(miniature); miniatureContainer.addChild(miniature); // Arrange miniatures in rows of 5 var rowLength = 5; var miniSize = 40; // Space for each miniature var row = Math.floor((enemyMiniatures.length - 1) / rowLength); var col = (enemyMiniatures.length - 1) % rowLength; miniature.x = -(col * miniSize); miniature.y = row * miniSize; // Check if player has passed 25 enemies to complete the game if (enemiesPassed >= 25) { // Create congratulation text before showing you win screen var congratsText = new Text2('Tebrikler!', { size: 120, fill: 0xFFD700 // Gold color }); congratsText.anchor.set(0.5, 0.5); congratsText.x = 2048 / 2; congratsText.y = 2732 / 2; game.addChild(congratsText); // Flash screen with celebratory color LK.effects.flashScreen(0x00FF00, 1000); // Show win screen after a short delay to show the congratulation text LK.setTimeout(function () { LK.showYouWin(); }, 1500); } // Achievement notification for passing 5 enemies if (enemiesPassed % 5 === 0 && enemiesPassed > 0 && !isTransforming) { // Player transformation isTransforming = true; // Change to transformed character player.transform(true); // Double the player size with animation tween(player.scale, { x: 2, y: 2 }, { duration: 500, easing: tween.easeOutElastic }); // Flash the player to highlight the achievement LK.effects.flashObject(player, 0xFF9900, 500); // Add text notification about transformation var transformText = new Text2('POWER UP!', { size: 80, fill: 0xFF9900 }); transformText.anchor.set(0.5, 0.5); transformText.x = player.x + 200; transformText.y = player.y - 150; game.addChild(transformText); LK.setTimeout(function () { transformText.destroy(); }, 2000); // Reset player size and appearance after 5 seconds LK.setTimeout(function () { tween(player.scale, { x: 1, y: 1 }, { duration: 500, easing: tween.easeInOutQuad, onFinish: function onFinish() { player.transform(false); isTransforming = false; } }); }, 5000); } } } }; // Handle player jump game.down = function (x, y, obj) { player.jump(); };
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* 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.passed = false;
self.update = function () {
self.x -= enemySpeed;
if (self.x < -50) {
self.destroy();
}
};
});
// Define a class for enemy miniatures
var EnemyMiniature = Container.expand(function () {
var self = Container.call(this);
var miniatureGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.3,
scaleY: 0.3
});
return self;
});
//<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,
tint: 0xFFFFFF // Default tint, will be changed on transformation
});
var playerJumpingGraphics = LK.getAsset('player_jumping', {
anchorX: 0.5,
anchorY: 0.5,
tint: 0xFFFFFF // Default tint, will be changed on transformation
});
var playerTransformedGraphics = LK.getAsset('player_transformed', {
anchorX: 0.5,
anchorY: 0.5,
tint: 0xFF9900 // Orange tint for transformed state
});
playerJumpingGraphics.visible = false;
playerTransformedGraphics.visible = false;
self.addChild(playerJumpingGraphics);
self.addChild(playerTransformedGraphics);
self.isTransformed = false;
self.speed = 5;
self.jumpHeight = 40;
self.isJumping = false;
self.scale.set(1, 1); // Initialize scale for transformation
self.velocityY = 0;
self.update = function () {
if (self.isJumping) {
self.y += self.velocityY;
self.velocityY += 0.7; // Decreased gravity effect by 30%
// Show jumping character
playerGraphics.visible = false;
playerTransformedGraphics.visible = false;
playerJumpingGraphics.visible = true;
if (self.y >= 2732 / 2) {
// Ground level
self.y = 2732 / 2;
self.isJumping = false;
self.velocityY = 0;
// Switch back to appropriate character based on transformation state
if (self.isTransformed) {
playerTransformedGraphics.visible = true;
playerGraphics.visible = false;
playerJumpingGraphics.visible = false;
} else {
playerGraphics.visible = true;
playerTransformedGraphics.visible = false;
playerJumpingGraphics.visible = false;
}
}
} else {
// Show appropriate character when not jumping based on transformation state
if (self.isTransformed) {
playerTransformedGraphics.visible = true;
playerGraphics.visible = false;
playerJumpingGraphics.visible = false;
} else {
playerGraphics.visible = true;
playerTransformedGraphics.visible = false;
playerJumpingGraphics.visible = false;
}
}
};
self.jump = function () {
if (!self.isJumping) {
self.isJumping = true;
self.velocityY = -self.jumpHeight;
}
};
self.transform = function (transformed) {
self.isTransformed = transformed;
if (transformed) {
playerGraphics.visible = false;
playerJumpingGraphics.visible = false;
playerTransformedGraphics.visible = true;
// Keep the original tint when transforming
playerTransformedGraphics.tint = playerGraphics.tint;
} else {
playerGraphics.visible = !self.isJumping;
playerJumpingGraphics.visible = self.isJumping;
playerTransformedGraphics.visible = false;
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87CEEB // Sky blue background
});
/****
* Game Code
****/
var background = game.addChild(LK.getAsset('background', {
anchorX: 0,
anchorY: 0
}));
background.x = 0;
background.y = 0;
// Initialize player
var player = game.addChild(new Player());
player.x = 200; // Position player on the left side of the screen
player.y = 2732 / 2;
// Initialize enemies
var enemies = [];
var enemySpawnInterval = 100;
var enemySpawnCounter = 0;
var enemySpeed = 5;
var speedIncreaseTimer = LK.setInterval(function () {
enemySpeed += 1;
console.log("Enemy speed increased to: " + enemySpeed);
}, 5000); // 5 seconds
// Create a new Text2 object to display the score
var scoreText = new Text2('0', {
size: 100,
fill: 0xFFFFFF
});
// Create text to display enemy count
var enemyCountText = new Text2('Enemies Passed: 0', {
size: 60,
fill: 0xFFFFFF
});
// Add the score text to the game GUI at the top center of the screen
LK.gui.top.addChild(scoreText);
scoreText.x = 2048 / 2;
scoreText.y = 0;
// Add enemy count text below score
LK.gui.top.addChild(enemyCountText);
enemyCountText.x = 2048 / 2;
enemyCountText.y = 110;
// Initialize enemy passed counter
var enemiesPassed = 0;
// Variable to track if transformation is in progress
var isTransforming = false;
// Create a container for enemy miniatures
var miniatureContainer = new Container();
LK.gui.topRight.addChild(miniatureContainer);
miniatureContainer.x = -50; // Offset from right edge
miniatureContainer.y = 50;
// Array to track miniatures
var enemyMiniatures = [];
// Handle game updates
game.update = function () {
player.update();
// Spawn enemies
enemySpawnCounter++;
if (enemySpawnCounter >= enemySpawnInterval) {
var enemy = new Enemy();
enemy.x = 2048;
enemy.y = 2732 / 2;
enemies.push(enemy);
game.addChild(enemy);
// Randomize the spawn interval for the next enemy
enemySpawnInterval = Math.floor(Math.random() * 150) + 50;
enemySpawnCounter = 0;
}
// Update enemies
for (var j = enemies.length - 1; j >= 0; j--) {
enemies[j].update();
// Track last intersection state for clean collision detection
if (enemies[j].lastIntersecting === undefined) {
enemies[j].lastIntersecting = false;
}
var currentlyIntersecting = player.intersects(enemies[j]);
// Handle collision when player is transformed
if (player.isTransformed && currentlyIntersecting && !enemies[j].passed) {
// "Eat" the enemy
// Create eating animation effect
LK.effects.flashObject(enemies[j], 0xFF0000, 300);
// Add bonus score for eating enemy
LK.setScore(LK.getScore() + 5);
scoreText.setText(LK.getScore());
// Create "eaten" text
var eatenText = new Text2('+5', {
size: 40,
fill: 0xFF0000
});
eatenText.anchor.set(0.5, 0.5);
eatenText.x = enemies[j].x;
eatenText.y = enemies[j].y - 50;
game.addChild(eatenText);
// Remove eaten text after animation
tween(eatenText, {
y: eatenText.y - 100,
alpha: 0
}, {
duration: 800,
onFinish: function onFinish() {
eatenText.destroy();
}
});
// Remove the enemy
enemies[j].destroy();
enemies.splice(j, 1);
continue;
}
// If enemy passes player
if (player.x > enemies[j].x && !enemies[j].passed) {
enemies[j].passed = true;
// Increment both counters
LK.setScore(LK.getScore() + 1);
enemiesPassed++;
// Update both text displays
scoreText.setText(LK.getScore());
enemyCountText.setText('Enemies Passed: ' + enemiesPassed);
// Flash the enemy count text to highlight change
LK.effects.flashObject(enemyCountText, 0x00FF00, 300);
// Add a miniature of the passed enemy to the top right corner
var miniature = new EnemyMiniature();
enemyMiniatures.push(miniature);
miniatureContainer.addChild(miniature);
// Arrange miniatures in rows of 5
var rowLength = 5;
var miniSize = 40; // Space for each miniature
var row = Math.floor((enemyMiniatures.length - 1) / rowLength);
var col = (enemyMiniatures.length - 1) % rowLength;
miniature.x = -(col * miniSize);
miniature.y = row * miniSize;
// Check if player has passed 25 enemies to complete the game
if (enemiesPassed >= 25) {
// Create congratulation text before showing you win screen
var congratsText = new Text2('Tebrikler!', {
size: 120,
fill: 0xFFD700 // Gold color
});
congratsText.anchor.set(0.5, 0.5);
congratsText.x = 2048 / 2;
congratsText.y = 2732 / 2;
game.addChild(congratsText);
// Flash screen with celebratory color
LK.effects.flashScreen(0x00FF00, 1000);
// Show win screen after a short delay to show the congratulation text
LK.setTimeout(function () {
LK.showYouWin();
}, 1500);
}
// Achievement notification for passing 5 enemies
if (enemiesPassed % 5 === 0 && enemiesPassed > 0 && !isTransforming) {
// Player transformation
isTransforming = true;
// Change to transformed character
player.transform(true);
// Double the player size with animation
tween(player.scale, {
x: 2,
y: 2
}, {
duration: 500,
easing: tween.easeOutElastic
});
// Flash the player to highlight the achievement
LK.effects.flashObject(player, 0xFF9900, 500);
// Add text notification about transformation
var transformText = new Text2('POWER UP!', {
size: 80,
fill: 0xFF9900
});
transformText.anchor.set(0.5, 0.5);
transformText.x = player.x + 200;
transformText.y = player.y - 150;
game.addChild(transformText);
LK.setTimeout(function () {
transformText.destroy();
}, 2000);
// Reset player size and appearance after 5 seconds
LK.setTimeout(function () {
tween(player.scale, {
x: 1,
y: 1
}, {
duration: 500,
easing: tween.easeInOutQuad,
onFinish: function onFinish() {
player.transform(false);
isTransforming = false;
}
});
}, 5000);
}
}
}
};
// Handle player jump
game.down = function (x, y, obj) {
player.jump();
};