User prompt
50 mermi veren kutular spavnlansın 100 puandan sonra spavnlansın raskele yerlerde
User prompt
Oyun başladığında 1 seviyeli silah daha kolay çıksın 2 seviyeli silah 500 puandan sonra çıksın 3 seviyeli silah ise 1000 puandan sonra çıksın hareket tuşlarına asset ekle
User prompt
Yön tuşlarını 200 × 200 yap ve düşmanlar seviye arttıkça daha fazla puan versin
User prompt
Yerde nadiren saha güçlü silahlar oluşsun onları alıp düşmana ateş edildiğimde daha fazla ateş hasar versin 3 tane silah oluşsun 1 ci silah 1 süviye 2ci silah 2 süviye 3cü silah 3 seviye olsun ve her seviyede daha fazla can alsın karakter yerden silahları alsın ve yeni silahla ateş etsin 2 seviye silah alındığında artık 1seviye silah oluşmasın ve alınamasın 3 seviye silah alındığında 1 ve 2 seviye silahlar oluşmasın ve alınamasın
User prompt
Ok butonlarını 100 × 100 yap
User prompt
Ok tuşlarını büyüt her düşman oldüyünde 10 puan artsın
Code edit (1 edits merged)
Please save this source code
User prompt
Battle Arena Survivor
Initial prompt
Bana bir silah oyunu yap karakter olaun karakter sağa sola ileri ve geri hareket ettiren ol tuşları olsun oyun yatay şekilde oynansın karakterin silahı olsun düşmanlar olsun karaktere saldırsın 10 seviye düşmanlar olsun 1 dün 10 kadar süviyeli düşmanlar olsun her 10 puanda düşman 1 seviye atlasın ve güçlensin 1 seviye düşman 1 mermide ölsün 2 seviye düşman 2 mermide 3 seviye düşman 3 mermide 4 seviye düşman 5 mermide 6 seviye düşman 6 mermide 7 seviye düşman 8 mermide 8 seviye düşman 9 mermide 9 seviye düşman 10 mermide 10 seviye düşman 15 mermide ölsün karakter dokunulan yere ateş etsin yerlerde raskele oluşan can arttırıcı bandajlar ve silah mermileri olsun karakterin canı 100 olsun her seviye artdıkdadüşmanda karaktere ateş etmesi daha fazla can alsın puan barı olsun oyun bittiğinde puan ekranda yazsın
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var AmmoPack = Container.expand(function () {
var self = Container.call(this);
var graphics = self.attachAsset('ammoPack', {
anchorX: 0.5,
anchorY: 0.5
});
self.ammoAmount = 10;
return self;
});
var Bullet = Container.expand(function () {
var self = Container.call(this);
var graphics = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.velocityX = 0;
self.velocityY = 0;
self.speed = 12;
self.setDirection = function (targetX, targetY) {
var dx = targetX - self.x;
var dy = targetY - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 0) {
self.velocityX = dx / distance * self.speed;
self.velocityY = dy / distance * self.speed;
}
};
self.update = function () {
self.x += self.velocityX;
self.y += self.velocityY;
};
return self;
});
var Enemy = Container.expand(function () {
var self = Container.call(this);
var graphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.level = 1;
self.health = 1;
self.maxHealth = 1;
self.speed = 2;
self.damage = 1;
self.lastAttackTime = 0;
self.attackCooldown = 2000; // 2 seconds between attacks
self.setLevel = function (level) {
self.level = level;
if (level <= 9) {
self.health = level;
self.maxHealth = level;
} else {
self.health = 15;
self.maxHealth = 15;
}
self.damage = level;
self.speed = 2 + level * 0.3;
// Visual scaling based on level
var scale = 1 + level * 0.1;
graphics.scaleX = scale;
graphics.scaleY = scale;
};
self.takeDamage = function () {
self.health--;
// Flash white when hit
tween(graphics, {
tint: 0xFFFFFF
}, {
duration: 100,
onFinish: function onFinish() {
tween(graphics, {
tint: 0xFFFFFF
}, {
duration: 100
});
}
});
return self.health <= 0;
};
self.update = function () {
if (!player) return;
// Move towards player
var dx = player.x - self.x;
var dy = player.y - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 0) {
self.x += dx / distance * self.speed;
self.y += dy / distance * self.speed;
}
// Attack player if close enough and cooldown is ready
if (distance < 50 && Date.now() - self.lastAttackTime > self.attackCooldown) {
player.takeDamage(self.damage);
self.lastAttackTime = Date.now();
}
};
return self;
});
var HealthPack = Container.expand(function () {
var self = Container.call(this);
var graphics = self.attachAsset('healthPack', {
anchorX: 0.5,
anchorY: 0.5
});
self.healAmount = 25;
return self;
});
var Player = Container.expand(function () {
var self = Container.call(this);
var graphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
self.health = 100;
self.maxHealth = 100;
self.speed = 8;
self.ammo = 30;
self.takeDamage = function (damage) {
self.health -= damage;
if (self.health < 0) self.health = 0;
// Flash red when taking damage
tween(graphics, {
tint: 0xFF0000
}, {
duration: 100,
onFinish: function onFinish() {
tween(graphics, {
tint: 0xFFFFFF
}, {
duration: 100
});
}
});
};
self.heal = function (amount) {
self.health += amount;
if (self.health > self.maxHealth) self.health = self.maxHealth;
// Flash green when healing
tween(graphics, {
tint: 0x00FF00
}, {
duration: 200,
onFinish: function onFinish() {
tween(graphics, {
tint: 0xFFFFFF
}, {
duration: 200
});
}
});
};
self.addAmmo = function (amount) {
self.ammo += amount;
// Flash blue when getting ammo
tween(graphics, {
tint: 0x0000FF
}, {
duration: 200,
onFinish: function onFinish() {
tween(graphics, {
tint: 0xFFFFFF
}, {
duration: 200
});
}
});
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x2E7D32
});
/****
* Game Code
****/
var player;
var enemies = [];
var bullets = [];
var healthPacks = [];
var ammoPacks = [];
var currentEnemyLevel = 1;
var lastEnemySpawn = 0;
var enemySpawnRate = 2000; // 2 seconds
var lastHealthPackSpawn = 0;
var healthPackSpawnRate = 8000; // 8 seconds
var lastAmmoPackSpawn = 0;
var ammoPackSpawnRate = 6000; // 6 seconds
var moveDirection = {
x: 0,
y: 0
};
// Create player
player = game.addChild(new Player());
player.x = 2048 / 2;
player.y = 2732 / 2;
// UI Elements
var healthText = new Text2('Health: 100', {
size: 60,
fill: 0xFF4081
});
healthText.anchor.set(0, 0);
LK.gui.topLeft.addChild(healthText);
healthText.x = 120; // Avoid platform menu
var ammoText = new Text2('Ammo: 30', {
size: 60,
fill: 0x2196F3
});
ammoText.anchor.set(0, 0);
LK.gui.topLeft.addChild(ammoText);
ammoText.x = 120; // Avoid platform menu
ammoText.y = 80;
var scoreText = new Text2('Score: 0', {
size: 60,
fill: 0xFFEB3B
});
scoreText.anchor.set(1, 0);
LK.gui.topRight.addChild(scoreText);
var levelText = new Text2('Enemy Level: 1', {
size: 60,
fill: 0xFF5722
});
levelText.anchor.set(1, 0);
LK.gui.topRight.addChild(levelText);
levelText.y = 80;
// Movement controls
var moveUpButton = LK.getAsset('player', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1.2,
scaleY: 0.6,
alpha: 0.5
});
game.addChild(moveUpButton);
moveUpButton.x = 200;
moveUpButton.y = 2732 - 400;
var moveDownButton = LK.getAsset('player', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1.2,
scaleY: 0.6,
alpha: 0.5
});
game.addChild(moveDownButton);
moveDownButton.x = 200;
moveDownButton.y = 2732 - 200;
var moveLeftButton = LK.getAsset('player', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.6,
scaleY: 1.2,
alpha: 0.5
});
game.addChild(moveLeftButton);
moveLeftButton.x = 100;
moveLeftButton.y = 2732 - 300;
var moveRightButton = LK.getAsset('player', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.6,
scaleY: 1.2,
alpha: 0.5
});
game.addChild(moveRightButton);
moveRightButton.x = 300;
moveRightButton.y = 2732 - 300;
// Control handlers
moveUpButton.down = function () {
moveDirection.y = -1;
};
moveUpButton.up = function () {
moveDirection.y = 0;
};
moveDownButton.down = function () {
moveDirection.y = 1;
};
moveDownButton.up = function () {
moveDirection.y = 0;
};
moveLeftButton.down = function () {
moveDirection.x = -1;
};
moveLeftButton.up = function () {
moveDirection.x = 0;
};
moveRightButton.down = function () {
moveDirection.x = 1;
};
moveRightButton.up = function () {
moveDirection.x = 0;
};
// Shooting
game.down = function (x, y) {
if (player.ammo <= 0) return;
// Don't shoot if touching movement controls
if (x < 400 && y > 2732 - 500) return;
var bullet = new Bullet();
bullet.x = player.x;
bullet.y = player.y;
bullet.setDirection(x, y);
bullets.push(bullet);
game.addChild(bullet);
player.ammo--;
LK.getSound('shoot').play();
};
function spawnEnemy() {
var enemy = new Enemy();
enemy.setLevel(currentEnemyLevel);
// Spawn at random edge of screen
var side = Math.floor(Math.random() * 4);
switch (side) {
case 0:
// Top
enemy.x = Math.random() * 2048;
enemy.y = -50;
break;
case 1:
// Right
enemy.x = 2048 + 50;
enemy.y = Math.random() * 2732;
break;
case 2:
// Bottom
enemy.x = Math.random() * 2048;
enemy.y = 2732 + 50;
break;
case 3:
// Left
enemy.x = -50;
enemy.y = Math.random() * 2732;
break;
}
enemies.push(enemy);
game.addChild(enemy);
}
function spawnHealthPack() {
var healthPack = new HealthPack();
healthPack.x = Math.random() * (2048 - 100) + 50;
healthPack.y = Math.random() * (2732 - 100) + 50;
healthPacks.push(healthPack);
game.addChild(healthPack);
}
function spawnAmmoPack() {
var ammoPack = new AmmoPack();
ammoPack.x = Math.random() * (2048 - 100) + 50;
ammoPack.y = Math.random() * (2732 - 100) + 50;
ammoPacks.push(ammoPack);
game.addChild(ammoPack);
}
game.update = function () {
var now = Date.now();
// Update enemy level based on score
var newLevel = Math.floor(LK.getScore() / 100) + 1;
if (newLevel > 10) newLevel = 10;
if (newLevel !== currentEnemyLevel) {
currentEnemyLevel = newLevel;
levelText.setText('Enemy Level: ' + currentEnemyLevel);
}
// Player movement
if (moveDirection.x !== 0 || moveDirection.y !== 0) {
var newX = player.x + moveDirection.x * player.speed;
var newY = player.y + moveDirection.y * player.speed;
// Keep player on screen
if (newX >= 40 && newX <= 2048 - 40) player.x = newX;
if (newY >= 40 && newY <= 2732 - 40) player.y = newY;
}
// Spawn enemies
if (now - lastEnemySpawn > enemySpawnRate) {
spawnEnemy();
lastEnemySpawn = now;
}
// Spawn health packs
if (now - lastHealthPackSpawn > healthPackSpawnRate) {
spawnHealthPack();
lastHealthPackSpawn = now;
}
// Spawn ammo packs
if (now - lastAmmoPackSpawn > ammoPackSpawnRate) {
spawnAmmoPack();
lastAmmoPackSpawn = now;
}
// Update bullets
for (var i = bullets.length - 1; i >= 0; i--) {
var bullet = bullets[i];
// Remove off-screen bullets
if (bullet.x < -50 || bullet.x > 2048 + 50 || bullet.y < -50 || bullet.y > 2732 + 50) {
bullet.destroy();
bullets.splice(i, 1);
continue;
}
// Check bullet-enemy collisions
for (var j = enemies.length - 1; j >= 0; j--) {
var enemy = enemies[j];
if (bullet.intersects(enemy)) {
if (enemy.takeDamage()) {
// Enemy destroyed
LK.setScore(LK.getScore() + 10);
scoreText.setText('Score: ' + LK.getScore());
enemy.destroy();
enemies.splice(j, 1);
}
LK.getSound('enemyHit').play();
bullet.destroy();
bullets.splice(i, 1);
break;
}
}
}
// Check player-health pack collisions
for (var i = healthPacks.length - 1; i >= 0; i--) {
var healthPack = healthPacks[i];
if (player.intersects(healthPack)) {
player.heal(healthPack.healAmount);
LK.getSound('pickup').play();
healthPack.destroy();
healthPacks.splice(i, 1);
}
}
// Check player-ammo pack collisions
for (var i = ammoPacks.length - 1; i >= 0; i--) {
var ammoPack = ammoPacks[i];
if (player.intersects(ammoPack)) {
player.addAmmo(ammoPack.ammoAmount);
LK.getSound('pickup').play();
ammoPack.destroy();
ammoPacks.splice(i, 1);
}
}
// Update UI
healthText.setText('Health: ' + player.health);
ammoText.setText('Ammo: ' + player.ammo);
// Check game over
if (player.health <= 0) {
LK.showGameOver();
}
}; ===================================================================
--- original.js
+++ change.js
@@ -237,40 +237,40 @@
// Movement controls
var moveUpButton = LK.getAsset('player', {
anchorX: 0.5,
anchorY: 0.5,
- scaleX: 0.8,
- scaleY: 0.4,
+ scaleX: 1.2,
+ scaleY: 0.6,
alpha: 0.5
});
game.addChild(moveUpButton);
moveUpButton.x = 200;
moveUpButton.y = 2732 - 400;
var moveDownButton = LK.getAsset('player', {
anchorX: 0.5,
anchorY: 0.5,
- scaleX: 0.8,
- scaleY: 0.4,
+ scaleX: 1.2,
+ scaleY: 0.6,
alpha: 0.5
});
game.addChild(moveDownButton);
moveDownButton.x = 200;
moveDownButton.y = 2732 - 200;
var moveLeftButton = LK.getAsset('player', {
anchorX: 0.5,
anchorY: 0.5,
- scaleX: 0.4,
- scaleY: 0.8,
+ scaleX: 0.6,
+ scaleY: 1.2,
alpha: 0.5
});
game.addChild(moveLeftButton);
moveLeftButton.x = 100;
moveLeftButton.y = 2732 - 300;
var moveRightButton = LK.getAsset('player', {
anchorX: 0.5,
anchorY: 0.5,
- scaleX: 0.4,
- scaleY: 0.8,
+ scaleX: 0.6,
+ scaleY: 1.2,
alpha: 0.5
});
game.addChild(moveRightButton);
moveRightButton.x = 300;
@@ -360,9 +360,9 @@
}
game.update = function () {
var now = Date.now();
// Update enemy level based on score
- var newLevel = Math.floor(LK.getScore() / 10) + 1;
+ var newLevel = Math.floor(LK.getScore() / 100) + 1;
if (newLevel > 10) newLevel = 10;
if (newLevel !== currentEnemyLevel) {
currentEnemyLevel = newLevel;
levelText.setText('Enemy Level: ' + currentEnemyLevel);
@@ -404,9 +404,9 @@
var enemy = enemies[j];
if (bullet.intersects(enemy)) {
if (enemy.takeDamage()) {
// Enemy destroyed
- LK.setScore(LK.getScore() + 1);
+ LK.setScore(LK.getScore() + 10);
scoreText.setText('Score: ' + LK.getScore());
enemy.destroy();
enemies.splice(j, 1);
}