User prompt
mor düşmanlar oyuncu o an nereye tıkladıysa oraya doğru gitsin
User prompt
yeni mor renkli bir düşman yarat ve bu düşman aynı kırmızı düşmanlar gibi çalışsın
User prompt
oyuncunun her canı azaldığında ekranı biraz biraz grileştir
User prompt
can barının boyutunu değiştirdim buna gore oranını düzelt
User prompt
düşmanlar daha sık ortaya çıksın
User prompt
her 5 levelde bir ortaya çıkan düşman sayısı arttsın
User prompt
her level atlanıldığında gelen düşmanların hızını biraz arttır
User prompt
level yazısını düzelt sanırım bi sorun var
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'setText')' in or related to this line: 'levelText.setText('Level: ' + level);' Line Number: 117
User prompt
oyun level 1 ile başlasın ve her 30 skorda bir level atlasın
User prompt
hasar yeme efekti koy
User prompt
oyuncu hasar yerse tüm ekran bi anlığına kırmızı yanıp sönsün efektle
User prompt
Please fix the bug: 'Cannot set properties of undefined (setting 'anchorX')' in or related to this line: 'healthBarForeground.anchorX = 0;' Line Number: 135
User prompt
health yazısı yerine bir adet can göstergesi koy
User prompt
her hasarda 20 can gitsin
User prompt
oyuncunun 100 canlık bir can barı olsun ve her hasar yediğinde 20 canı gitsin,bu can barını sol üste koy
User prompt
score yazısını ekranın orta üstüne al
User prompt
oyun level 1 ile başlasın
User prompt
düşmanların temel hızını biraz arttır
User prompt
remove high score
User prompt
high score levele gore değil score a gore çalıssın
User prompt
high score sıfırlanmasın ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
ekrana en yüksek skoru kaydedecek bir şey ekle ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
highscore ekle ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
oyuncunun temel hızını biraz arttır
/**** * Plugins ****/ var storage = LK.import("@upit/storage.v1"); /**** * Classes ****/ var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 7 + Math.random() * 4.5; // Further increase base speed and range self.health = 1; self.lastWasIntersecting = false; self.update = function () { // Move towards the player's current position self.x += self.vx; self.y += self.vy; // Check collision with player var isIntersecting = self.intersects(player); if (!self.lastWasIntersecting && isIntersecting) { player.takeDamage(10); self.destroy(); var index = enemies.indexOf(self); if (index > -1) { enemies.splice(index, 1); } } self.lastWasIntersecting = isIntersecting; // Check if the enemy has exited the screen without colliding with the player if (!isIntersecting && (self.x < -self.width || self.x > 2048 + self.width || self.y < -self.height || self.y > 2732 + self.height)) { LK.setScore(LK.getScore() + 10); self.destroy(); var index = enemies.indexOf(self); if (index > -1) { enemies.splice(index, 1); } } }; self.takeDamage = function (amount) { self.health -= amount; if (self.health <= 0) { LK.getSound('explosion').play(); LK.effects.flashObject(self, 0xFFFFFF, 100); self.destroy(); var index = enemies.indexOf(self); if (index > -1) { enemies.splice(index, 1); } LK.setScore(LK.getScore() + 10); } }; return self; }); // Set background color var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.health = 100; self.rotation = 0; self.shootCooldown = 0; self.update = function () { if (self.shootCooldown > 0) { self.shootCooldown--; } // Move player towards target position var dx = self.targetX - self.x; var dy = self.targetY - self.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist > 1) { self.x += dx / dist * 7; // Increase speed for faster movement self.y += dy / dist * 7; // Increase speed for faster movement } }; self.shoot = function () { // Shooting functionality removed }; self.takeDamage = function (amount) { self.health -= amount; LK.effects.flashObject(self, 0xFF0000, 300); if (self.health <= 0) { LK.effects.flashScreen(0xFF0000, 1000); LK.showGameOver(); } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ // Update player game.setBackgroundColor(0x2c3e50); // Game variables var player; var enemies = []; var spawnTimer = 0; var level = 0; var spawnInterval = 90; // Decrease interval for more frequent spawns var spawnDistance = 800; // Distance from center to spawn enemies var aimDirection = 0; var score = 0; // Create player in center of screen player = new Player(); player.x = 2048 / 2; player.y = 2732 / 2; game.addChild(player); // Spawn an initial enemy at the start of the game spawnEnemy(); // Create score text var scoreText = new Text2('Score: 0', { size: 60, fill: 0xFFFFFF }); scoreText.anchor.set(0, 0); LK.gui.topLeft.addChild(scoreText); scoreText.x = 110; // Keep away from top left 100x100 area // Create level text var levelText = new Text2('Level: 0', { size: 60, fill: 0xFFFFFF }); levelText.anchor.set(1, 0); LK.gui.topRight.addChild(levelText); levelText.x = -10; // Position level text away from the right edge // Handle touch/click input for aiming and shooting game.down = function (x, y, obj) { // Set target position for player to move towards player.targetX = x; player.targetY = y; }; game.move = function (x, y, obj) { // No movement logic needed here }; game.up = function (x, y, obj) { // Could add additional logic here }; // Spawn enemy at random position around the player function spawnEnemy() { var enemy = new Enemy(); // Randomly choose an edge of the screen to spawn the enemy var edge = Math.floor(Math.random() * 4); switch (edge) { case 0: // Top edge enemy.x = Math.random() * 2048; enemy.y = -enemy.height; break; case 1: // Right edge enemy.x = 2048 + enemy.width; enemy.y = Math.random() * 2732; break; case 2: // Bottom edge enemy.x = Math.random() * 2048; enemy.y = 2732 + enemy.height; break; case 3: // Left edge enemy.x = -enemy.width; enemy.y = Math.random() * 2732; break; } // Calculate direction towards player var dx = player.x - enemy.x; var dy = player.y - enemy.y; var dist = Math.sqrt(dx * dx + dy * dy); enemy.vx = dx / dist * enemy.speed; enemy.vy = dy / dist * enemy.speed; game.addChild(enemy); enemies.push(enemy); // Increase difficulty if (spawnInterval > 30) { spawnInterval -= 0.5; } } // Game update loop game.update = function () { // Update player player.update(); // Update enemies for (var i = enemies.length - 1; i >= 0; i--) { enemies[i].update(); } // Spawn enemies spawnTimer++; if (spawnTimer >= spawnInterval) { spawnEnemy(); spawnTimer = 0; } // Update score and level display scoreText.setText('Score: ' + LK.getScore()); levelText.setText('Level: ' + level); // Initialize high score var highScore = storage.highScore || 0; // Increase level and decrease spawn interval every 30 points if (LK.getScore() >= (level + 1) * 30) { level++; if (spawnInterval > 30) { spawnInterval -= 5; // Decrease spawn interval to increase difficulty } // Update high score if the current level is higher if (level > highScore) { highScore = level; storage.highScore = highScore; } } };
/****
* Plugins
****/
var storage = LK.import("@upit/storage.v1");
/****
* Classes
****/
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 7 + Math.random() * 4.5; // Further increase base speed and range
self.health = 1;
self.lastWasIntersecting = false;
self.update = function () {
// Move towards the player's current position
self.x += self.vx;
self.y += self.vy;
// Check collision with player
var isIntersecting = self.intersects(player);
if (!self.lastWasIntersecting && isIntersecting) {
player.takeDamage(10);
self.destroy();
var index = enemies.indexOf(self);
if (index > -1) {
enemies.splice(index, 1);
}
}
self.lastWasIntersecting = isIntersecting;
// Check if the enemy has exited the screen without colliding with the player
if (!isIntersecting && (self.x < -self.width || self.x > 2048 + self.width || self.y < -self.height || self.y > 2732 + self.height)) {
LK.setScore(LK.getScore() + 10);
self.destroy();
var index = enemies.indexOf(self);
if (index > -1) {
enemies.splice(index, 1);
}
}
};
self.takeDamage = function (amount) {
self.health -= amount;
if (self.health <= 0) {
LK.getSound('explosion').play();
LK.effects.flashObject(self, 0xFFFFFF, 100);
self.destroy();
var index = enemies.indexOf(self);
if (index > -1) {
enemies.splice(index, 1);
}
LK.setScore(LK.getScore() + 10);
}
};
return self;
});
// Set background color
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
self.health = 100;
self.rotation = 0;
self.shootCooldown = 0;
self.update = function () {
if (self.shootCooldown > 0) {
self.shootCooldown--;
}
// Move player towards target position
var dx = self.targetX - self.x;
var dy = self.targetY - self.y;
var dist = Math.sqrt(dx * dx + dy * dy);
if (dist > 1) {
self.x += dx / dist * 7; // Increase speed for faster movement
self.y += dy / dist * 7; // Increase speed for faster movement
}
};
self.shoot = function () {
// Shooting functionality removed
};
self.takeDamage = function (amount) {
self.health -= amount;
LK.effects.flashObject(self, 0xFF0000, 300);
if (self.health <= 0) {
LK.effects.flashScreen(0xFF0000, 1000);
LK.showGameOver();
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
// Update player
game.setBackgroundColor(0x2c3e50);
// Game variables
var player;
var enemies = [];
var spawnTimer = 0;
var level = 0;
var spawnInterval = 90; // Decrease interval for more frequent spawns
var spawnDistance = 800; // Distance from center to spawn enemies
var aimDirection = 0;
var score = 0;
// Create player in center of screen
player = new Player();
player.x = 2048 / 2;
player.y = 2732 / 2;
game.addChild(player);
// Spawn an initial enemy at the start of the game
spawnEnemy();
// Create score text
var scoreText = new Text2('Score: 0', {
size: 60,
fill: 0xFFFFFF
});
scoreText.anchor.set(0, 0);
LK.gui.topLeft.addChild(scoreText);
scoreText.x = 110; // Keep away from top left 100x100 area
// Create level text
var levelText = new Text2('Level: 0', {
size: 60,
fill: 0xFFFFFF
});
levelText.anchor.set(1, 0);
LK.gui.topRight.addChild(levelText);
levelText.x = -10; // Position level text away from the right edge
// Handle touch/click input for aiming and shooting
game.down = function (x, y, obj) {
// Set target position for player to move towards
player.targetX = x;
player.targetY = y;
};
game.move = function (x, y, obj) {
// No movement logic needed here
};
game.up = function (x, y, obj) {
// Could add additional logic here
};
// Spawn enemy at random position around the player
function spawnEnemy() {
var enemy = new Enemy();
// Randomly choose an edge of the screen to spawn the enemy
var edge = Math.floor(Math.random() * 4);
switch (edge) {
case 0:
// Top edge
enemy.x = Math.random() * 2048;
enemy.y = -enemy.height;
break;
case 1:
// Right edge
enemy.x = 2048 + enemy.width;
enemy.y = Math.random() * 2732;
break;
case 2:
// Bottom edge
enemy.x = Math.random() * 2048;
enemy.y = 2732 + enemy.height;
break;
case 3:
// Left edge
enemy.x = -enemy.width;
enemy.y = Math.random() * 2732;
break;
}
// Calculate direction towards player
var dx = player.x - enemy.x;
var dy = player.y - enemy.y;
var dist = Math.sqrt(dx * dx + dy * dy);
enemy.vx = dx / dist * enemy.speed;
enemy.vy = dy / dist * enemy.speed;
game.addChild(enemy);
enemies.push(enemy);
// Increase difficulty
if (spawnInterval > 30) {
spawnInterval -= 0.5;
}
}
// Game update loop
game.update = function () {
// Update player
player.update();
// Update enemies
for (var i = enemies.length - 1; i >= 0; i--) {
enemies[i].update();
}
// Spawn enemies
spawnTimer++;
if (spawnTimer >= spawnInterval) {
spawnEnemy();
spawnTimer = 0;
}
// Update score and level display
scoreText.setText('Score: ' + LK.getScore());
levelText.setText('Level: ' + level);
// Initialize high score
var highScore = storage.highScore || 0;
// Increase level and decrease spawn interval every 30 points
if (LK.getScore() >= (level + 1) * 30) {
level++;
if (spawnInterval > 30) {
spawnInterval -= 5; // Decrease spawn interval to increase difficulty
}
// Update high score if the current level is higher
if (level > highScore) {
highScore = level;
storage.highScore = highScore;
}
}
};