User prompt
Silah karakterime sadeçe 5 saniye kalsın ardından canavarlar 10 olduklarında gene bir yerde silah belirsin ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Karakterinin silahlı yanına koy sıla ile birlikte hareket edeyim birde silahım onlara ateş etsin ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Düşmanlarının ilk başta 5 olsun her 10 saniye 1 düşman daha artsın ama 10 düşmandan daha çok olmasın. Onlar 10 düşman olunca bana bir silah ver ama direk değil onu yerde alayım ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Karakterim büyümesin
User prompt
Böyle sağlanabileceğini bir ev tarzı bir şey yap ben içine girdiğimde canavarlar her kez farklı yerlere gitsinler
User prompt
Birde düşmanlar birbirli ile iç içe geçmesinler böyle birbirlerine ile çarpışsınlar
User prompt
Birde şey ekle karakterinin hızlanması için bir yemek tarzı bir şey ekle ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Her 100 puan topladım da seviyem artsın ilk baştaki seviyem 1. Maksimum seviyem 100 olsun
User prompt
Bana yemek tarzı öldüler yap ve o ödüllerle canım +10 yükselsin ve canavarlar bana ateş ettiklerinden ve bana doküman ateşlerde -5 Can kayıp edeyim. Canım 100 olsun ilk başta
User prompt
Sınırlı yaratıklar beni yakalanmaya çalışmaya denesinler ve bana ateş 🔥 atsınlar
Code edit (1 edits merged)
Please save this source code
User prompt
Cell Conquest
Initial prompt
Agario tarzı oyun yap
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var EnemyBullet = Container.expand(function () {
var self = Container.call(this);
var graphics = self.attachAsset('enemyBullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 4;
self.directionX = 0;
self.directionY = 0;
self.lifeTime = 0;
self.maxLifeTime = 180; // 3 seconds at 60fps
self.consumed = false;
self.update = function () {
if (self.consumed) return;
self.x += self.directionX * self.speed;
self.y += self.directionY * self.speed;
self.lifeTime++;
// Remove bullet if it goes out of bounds or expires
if (self.x < 0 || self.x > arenaWidth || self.y < 0 || self.y > arenaHeight || self.lifeTime > self.maxLifeTime) {
self.consumed = true;
}
};
return self;
});
var EnemyCell = Container.expand(function () {
var self = Container.call(this);
var graphics = self.attachAsset('enemyCell', {
anchorX: 0.5,
anchorY: 0.5
});
self.size = 80;
self.speed = 1;
self.targetX = self.x;
self.targetY = self.y;
self.moveTimer = 0;
self.consumed = false;
self.update = function () {
if (self.consumed) return;
self.moveTimer++;
// Chase the player instead of random movement
self.targetX = player.x;
self.targetY = player.y;
// Move towards player
var dx = self.targetX - self.x;
var dy = self.targetY - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
// Only move if not too close (maintain some distance for shooting)
if (distance > 120) {
self.x += dx / distance * self.speed;
self.y += dy / distance * self.speed;
}
// Shoot at player every 90 frames (1.5 seconds)
if (self.moveTimer % 90 === 0 && distance < 400) {
// Create bullet aimed at player
var bullet = new EnemyBullet();
bullet.x = self.x;
bullet.y = self.y;
// Calculate direction to player
bullet.directionX = dx / distance;
bullet.directionY = dy / distance;
enemyBullets.push(bullet);
game.addChild(bullet);
LK.getSound('enemyShoot').play();
}
// Keep within arena bounds
if (self.x < self.size / 2) self.x = self.size / 2;
if (self.x > arenaWidth - self.size / 2) self.x = arenaWidth - self.size / 2;
if (self.y < self.size / 2) self.y = self.size / 2;
if (self.y > arenaHeight - self.size / 2) self.y = arenaHeight - self.size / 2;
};
return self;
});
var FoodParticle = Container.expand(function () {
var self = Container.call(this);
var graphics = self.attachAsset('foodParticle', {
anchorX: 0.5,
anchorY: 0.5
});
self.value = 1;
self.consumed = false;
return self;
});
var PlayerCell = Container.expand(function () {
var self = Container.call(this);
var graphics = self.attachAsset('playerCell', {
anchorX: 0.5,
anchorY: 0.5
});
self.size = 60;
self.maxSpeed = 3;
self.targetX = self.x;
self.targetY = self.y;
self.lastSize = self.size;
self.grow = function (amount) {
self.size += amount;
self.scaleX = self.size / 60;
self.scaleY = self.size / 60;
// Update score based on size
LK.setScore(Math.floor(self.size - 60));
scoreTxt.setText(LK.getScore());
// Check win condition
if (self.size >= 300) {
LK.showYouWin();
}
};
self.getSpeed = function () {
// Speed decreases as size increases
var speedMultiplier = Math.max(0.3, 1 - (self.size - 60) / 200);
return self.maxSpeed * speedMultiplier;
};
self.update = function () {
// Move towards target position
var dx = self.targetX - self.x;
var dy = self.targetY - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 2) {
var speed = self.getSpeed();
self.x += dx / distance * speed;
self.y += dy / distance * speed;
}
// Keep within arena bounds
var radius = self.size / 2;
if (self.x < radius) self.x = radius;
if (self.x > arenaWidth - radius) self.x = arenaWidth - radius;
if (self.y < radius) self.y = radius;
if (self.y > arenaHeight - radius) self.y = arenaHeight - radius;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x1a1a1a
});
/****
* Game Code
****/
var arenaWidth = 2048;
var arenaHeight = 2732;
// Create score display
var scoreTxt = new Text2('0', {
size: 80,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Game objects
var player;
var foodParticles = [];
var enemyCells = [];
var enemyBullets = [];
var maxFoodParticles = 50;
var maxEnemyCells = 5;
// Initialize player
player = game.addChild(new PlayerCell());
player.x = arenaWidth / 2;
player.y = arenaHeight / 2;
// Create initial food particles
function createFoodParticle() {
var food = new FoodParticle();
food.x = Math.random() * (arenaWidth - 100) + 50;
food.y = Math.random() * (arenaHeight - 100) + 50;
foodParticles.push(food);
game.addChild(food);
}
// Create initial enemy cells
function createEnemyCell() {
var enemy = new EnemyCell();
enemy.x = Math.random() * (arenaWidth - 200) + 100;
enemy.y = Math.random() * (arenaHeight - 200) + 100;
// Make sure enemy doesn't spawn too close to player
var dx = enemy.x - player.x;
var dy = enemy.y - player.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance < 200) {
enemy.x = player.x + dx / distance * 200;
enemy.y = player.y + dy / distance * 200;
}
enemyCells.push(enemy);
game.addChild(enemy);
}
// Spawn initial objects
for (var i = 0; i < maxFoodParticles; i++) {
createFoodParticle();
}
for (var i = 0; i < maxEnemyCells; i++) {
createEnemyCell();
}
// Touch controls
function handleMove(x, y, obj) {
player.targetX = x;
player.targetY = y;
}
game.move = handleMove;
game.down = function (x, y, obj) {
handleMove(x, y, obj);
};
// Main game loop
game.update = function () {
// Check collisions with food particles
for (var i = foodParticles.length - 1; i >= 0; i--) {
var food = foodParticles[i];
if (food.consumed) continue;
var dx = player.x - food.x;
var dy = player.y - food.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance < player.size / 2 + 10) {
// Player ate food
food.consumed = true;
player.grow(3);
food.destroy();
foodParticles.splice(i, 1);
LK.getSound('eat').play();
}
}
// Check collisions with enemy cells
for (var i = enemyCells.length - 1; i >= 0; i--) {
var enemy = enemyCells[i];
if (enemy.consumed) continue;
var dx = player.x - enemy.x;
var dy = player.y - enemy.y;
var distance = Math.sqrt(dx * dx + dy * dy);
var collisionDistance = player.size / 2 + enemy.size / 2 - 10;
if (distance < collisionDistance) {
if (player.size > enemy.size + 20) {
// Player eats enemy
enemy.consumed = true;
player.grow(15);
enemy.destroy();
enemyCells.splice(i, 1);
LK.getSound('absorbed').play();
} else if (enemy.size > player.size + 20) {
// Enemy eats player - game over
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
return;
}
}
}
// Spawn new food particles
if (foodParticles.length < maxFoodParticles && LK.ticks % 60 === 0) {
createFoodParticle();
}
// Check bullet collisions with player
for (var i = enemyBullets.length - 1; i >= 0; i--) {
var bullet = enemyBullets[i];
if (bullet.consumed) {
bullet.destroy();
enemyBullets.splice(i, 1);
continue;
}
var dx = player.x - bullet.x;
var dy = player.y - bullet.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance < player.size / 2 + 5) {
// Bullet hit player - reduce size or game over
if (player.size > 80) {
player.size -= 10;
player.scaleX = player.size / 60;
player.scaleY = player.size / 60;
LK.setScore(Math.max(0, Math.floor(player.size - 60)));
scoreTxt.setText(LK.getScore());
} else {
// Player too small - game over
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
return;
}
bullet.consumed = true;
bullet.destroy();
enemyBullets.splice(i, 1);
}
}
// Spawn new enemy cells occasionally
if (enemyCells.length < maxEnemyCells && LK.ticks % 300 === 0) {
createEnemyCell();
}
}; ===================================================================
--- original.js
+++ change.js
@@ -5,8 +5,32 @@
/****
* Classes
****/
+var EnemyBullet = Container.expand(function () {
+ var self = Container.call(this);
+ var graphics = self.attachAsset('enemyBullet', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 4;
+ self.directionX = 0;
+ self.directionY = 0;
+ self.lifeTime = 0;
+ self.maxLifeTime = 180; // 3 seconds at 60fps
+ self.consumed = false;
+ self.update = function () {
+ if (self.consumed) return;
+ self.x += self.directionX * self.speed;
+ self.y += self.directionY * self.speed;
+ self.lifeTime++;
+ // Remove bullet if it goes out of bounds or expires
+ if (self.x < 0 || self.x > arenaWidth || self.y < 0 || self.y > arenaHeight || self.lifeTime > self.maxLifeTime) {
+ self.consumed = true;
+ }
+ };
+ return self;
+});
var EnemyCell = Container.expand(function () {
var self = Container.call(this);
var graphics = self.attachAsset('enemyCell', {
anchorX: 0.5,
@@ -20,21 +44,33 @@
self.consumed = false;
self.update = function () {
if (self.consumed) return;
self.moveTimer++;
- // Change direction every 120 frames (2 seconds)
- if (self.moveTimer % 120 === 0) {
- self.targetX = Math.random() * (arenaWidth - 200) + 100;
- self.targetY = Math.random() * (arenaHeight - 200) + 100;
- }
- // Move towards target
+ // Chase the player instead of random movement
+ self.targetX = player.x;
+ self.targetY = player.y;
+ // Move towards player
var dx = self.targetX - self.x;
var dy = self.targetY - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
- if (distance > 5) {
+ // Only move if not too close (maintain some distance for shooting)
+ if (distance > 120) {
self.x += dx / distance * self.speed;
self.y += dy / distance * self.speed;
}
+ // Shoot at player every 90 frames (1.5 seconds)
+ if (self.moveTimer % 90 === 0 && distance < 400) {
+ // Create bullet aimed at player
+ var bullet = new EnemyBullet();
+ bullet.x = self.x;
+ bullet.y = self.y;
+ // Calculate direction to player
+ bullet.directionX = dx / distance;
+ bullet.directionY = dy / distance;
+ enemyBullets.push(bullet);
+ game.addChild(bullet);
+ LK.getSound('enemyShoot').play();
+ }
// Keep within arena bounds
if (self.x < self.size / 2) self.x = self.size / 2;
if (self.x > arenaWidth - self.size / 2) self.x = arenaWidth - self.size / 2;
if (self.y < self.size / 2) self.y = self.size / 2;
@@ -122,8 +158,9 @@
// Game objects
var player;
var foodParticles = [];
var enemyCells = [];
+var enemyBullets = [];
var maxFoodParticles = 50;
var maxEnemyCells = 5;
// Initialize player
player = game.addChild(new PlayerCell());
@@ -214,8 +251,38 @@
// Spawn new food particles
if (foodParticles.length < maxFoodParticles && LK.ticks % 60 === 0) {
createFoodParticle();
}
+ // Check bullet collisions with player
+ for (var i = enemyBullets.length - 1; i >= 0; i--) {
+ var bullet = enemyBullets[i];
+ if (bullet.consumed) {
+ bullet.destroy();
+ enemyBullets.splice(i, 1);
+ continue;
+ }
+ var dx = player.x - bullet.x;
+ var dy = player.y - bullet.y;
+ var distance = Math.sqrt(dx * dx + dy * dy);
+ if (distance < player.size / 2 + 5) {
+ // Bullet hit player - reduce size or game over
+ if (player.size > 80) {
+ player.size -= 10;
+ player.scaleX = player.size / 60;
+ player.scaleY = player.size / 60;
+ LK.setScore(Math.max(0, Math.floor(player.size - 60)));
+ scoreTxt.setText(LK.getScore());
+ } else {
+ // Player too small - game over
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.showGameOver();
+ return;
+ }
+ bullet.consumed = true;
+ bullet.destroy();
+ enemyBullets.splice(i, 1);
+ }
+ }
// Spawn new enemy cells occasionally
if (enemyCells.length < maxEnemyCells && LK.ticks % 300 === 0) {
createEnemyCell();
}
Sınırlı yaratık. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Kapı ekle
Şimşek. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Alev. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Gulen bir kedi. In-Game asset. 2d. High contrast. No shadows
Balık. In-Game asset. 2d. High contrast. No shadows
Tavuk eti. In-Game asset. 2d. High contrast. No shadows
Pençe silah. In-Game asset. 2d. High contrast. No shadows