User prompt
arka ekranda bulut ve güneş olsun.
User prompt
silah kulesi en fazla 2 olsun.
User prompt
silah kulesi en fazla 3 olsun
User prompt
her kuş 5 puan olsun.her dalga 100 puanda değişsin.
User prompt
her atak 100 hedef olsun
User prompt
100 level olsun.Her level 5 atak olsun.
User prompt
mermi hızı iki kat artsın
User prompt
kule atışını yarıya düşür.
User prompt
arka ekran rengi ayarla
User prompt
20 canımız olsun
User prompt
kuşlar 4 katı gelsin
User prompt
her 100 skorda namlu adedi ve mermiler çoğalsın
User prompt
mermiler 4 kat hızlansın
User prompt
6 farklı kuş türü olsun.
User prompt
uçan kuşları silahla vurma oyunu yap
User prompt
Compilation error[L15]: Plugins failed to load.clen
Code edit (1 edits merged)
Please save this source code
User prompt
Modern Commander: Base Defense
Initial prompt
modern commander tarzı bir oyun olsun
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
// Bullet class
var Bullet = Container.expand(function () {
var self = Container.call(this);
var bulletGfx = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.dx = 0;
self.dy = 0;
self.damage = 1;
self.lifetime = 60; // ticks
self.update = function () {
self.x += self.dx;
self.y += self.dy;
self.lifetime--;
if (self.lifetime <= 0) {
self.destroy();
}
};
return self;
});
// Enemy class
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGfx = self.attachAsset('enemyUnit', {
anchorX: 0.5,
anchorY: 0.5
});
self.hp = 2 + wave;
self.speed = 2 + 0.2 * wave;
self.targetX = commandCenterPos.x;
self.targetY = commandCenterPos.y;
self.reward = 10 + 2 * wave;
self.update = function () {
var dx = self.targetX - self.x;
var dy = self.targetY - self.y;
var dist = Math.sqrt(dx * dx + dy * dy);
if (dist > 2) {
self.x += dx / dist * self.speed;
self.y += dy / dist * self.speed;
}
};
return self;
});
// Turret class
var Turret = Container.expand(function () {
var self = Container.call(this);
// Attach base
var base = self.attachAsset('turretBase', {
anchorX: 0.5,
anchorY: 0.5
});
// Attach barrel
var barrel = self.attachAsset('turretBarrel', {
anchorX: 0.5,
anchorY: 0.85,
y: -30
});
self.level = 1;
self.fireRate = 60; // ticks between shots
self.lastShot = 0;
self.range = 500;
self.damage = 1;
self.upgrade = function () {
if (self.level < 3) {
self.level += 1;
self.fireRate = Math.max(30, self.fireRate - 10);
self.range += 80;
self.damage += 1;
// Animate upgrade
tween(self, {
scaleX: 1.2,
scaleY: 1.2
}, {
duration: 120,
easing: tween.easeOut,
onFinish: function onFinish() {
tween(self, {
scaleX: 1,
scaleY: 1
}, {
duration: 120,
easing: tween.easeIn
});
}
});
}
};
// Find nearest enemy in range
self.findTarget = function () {
var minDist = self.range;
var target = null;
for (var i = 0; i < enemies.length; i++) {
var e = enemies[i];
var dx = e.x - self.x;
var dy = e.y - self.y;
var dist = Math.sqrt(dx * dx + dy * dy);
if (dist < minDist) {
minDist = dist;
target = e;
}
}
return target;
};
// Called every tick
self.update = function () {
// Find target
var target = self.findTarget();
if (target) {
// Rotate barrel towards target
var dx = target.x - self.x;
var dy = target.y - self.y;
var angle = Math.atan2(dy, dx) - Math.PI / 2;
barrel.rotation = angle;
// Fire if ready
if (LK.ticks - self.lastShot >= self.fireRate) {
self.lastShot = LK.ticks;
var b = new Bullet();
b.x = self.x;
b.y = self.y;
b.rotation = angle + Math.PI / 2;
b.dx = Math.cos(angle + Math.PI / 2) * 32;
b.dy = Math.sin(angle + Math.PI / 2) * 32;
b.damage = self.damage;
bullets.push(b);
game.addChild(b);
}
}
};
// Touch to upgrade
self.down = function (x, y, obj) {
if (resources >= turretUpgradeCost(self.level)) {
resources -= turretUpgradeCost(self.level);
self.upgrade();
updateResourceText();
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x222831
});
/****
* Game Code
****/
// Build button
// Upgrade button
// Bullet
// Enemy unit
// Command center
// Turret barrel
// Turret base
// Game constants
var baseWidth = 2048;
var baseHeight = 2732;
var commandCenterPos = {
x: baseWidth / 2,
y: baseHeight - 350
};
var turretSpots = [{
x: baseWidth / 2 - 350,
y: baseHeight - 700
}, {
x: baseWidth / 2 + 350,
y: baseHeight - 700
}, {
x: baseWidth / 2 - 600,
y: baseHeight - 1100
}, {
x: baseWidth / 2 + 600,
y: baseHeight - 1100
}, {
x: baseWidth / 2,
y: baseHeight - 1100
}];
var maxTurrets = 5;
var turretBuildCost = 50;
function turretUpgradeCost(level) {
return 40 * level;
}
var wave = 1;
var enemies = [];
var bullets = [];
var turrets = [];
var resources = 100;
var commandCenterHP = 10;
var isPlacingTurret = false;
// Command Center
var commandCenter = LK.getAsset('commandCenter', {
anchorX: 0.5,
anchorY: 0.5,
x: commandCenterPos.x,
y: commandCenterPos.y
});
game.addChild(commandCenter);
// GUI: Resource display
var resourceTxt = new Text2('Resources: 100', {
size: 80,
fill: "#fff"
});
resourceTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(resourceTxt);
// GUI: Wave display
var waveTxt = new Text2('Wave: 1', {
size: 80,
fill: "#fff"
});
waveTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(waveTxt);
waveTxt.y = 90;
// GUI: Command Center HP
var hpTxt = new Text2('Base HP: 10', {
size: 80,
fill: "#fff"
});
hpTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(hpTxt);
hpTxt.y = 180;
// GUI: Build Turret Button
var buildBtn = LK.getAsset('buildBtn', {
anchorX: 0.5,
anchorY: 0.5,
x: baseWidth / 2 - 250,
y: baseHeight - 180
});
var buildBtnTxt = new Text2('Build Turret\n50', {
size: 48,
fill: "#fff"
});
buildBtnTxt.anchor.set(0.5, 0.5);
buildBtn.addChild(buildBtnTxt);
game.addChild(buildBtn);
// GUI: Upgrade All Button
var upgradeBtn = LK.getAsset('upgradeBtn', {
anchorX: 0.5,
anchorY: 0.5,
x: baseWidth / 2 + 250,
y: baseHeight - 180
});
var upgradeBtnTxt = new Text2('Upgrade All', {
size: 48,
fill: "#fff"
});
upgradeBtnTxt.anchor.set(0.5, 0.5);
upgradeBtn.addChild(upgradeBtnTxt);
game.addChild(upgradeBtn);
// Update resource text
function updateResourceText() {
resourceTxt.setText('Resources: ' + resources);
}
function updateWaveText() {
waveTxt.setText('Wave: ' + wave);
}
function updateHPText() {
hpTxt.setText('Base HP: ' + commandCenterHP);
}
// Build turret on next available spot
function buildTurret() {
if (resources < turretBuildCost) return;
if (turrets.length >= maxTurrets) return;
var spot = turretSpots[turrets.length];
var t = new Turret();
t.x = spot.x;
t.y = spot.y;
turrets.push(t);
game.addChild(t);
resources -= turretBuildCost;
updateResourceText();
}
// Upgrade all turrets
function upgradeAllTurrets() {
for (var i = 0; i < turrets.length; i++) {
var t = turrets[i];
if (t.level < 3 && resources >= turretUpgradeCost(t.level)) {
resources -= turretUpgradeCost(t.level);
t.upgrade();
}
}
updateResourceText();
}
// Build button event
buildBtn.down = function (x, y, obj) {
buildTurret();
};
// Upgrade button event
upgradeBtn.down = function (x, y, obj) {
upgradeAllTurrets();
};
// Place initial turret
buildTurret();
// Enemy spawn logic
var spawnTimer = 0;
var enemiesToSpawn = 0;
function startWave() {
enemiesToSpawn = 4 + wave * 2;
spawnTimer = 0;
updateWaveText();
}
startWave();
// Main game update
game.update = function () {
// Turrets update
for (var i = 0; i < turrets.length; i++) {
turrets[i].update();
}
// Bullets update
for (var i = bullets.length - 1; i >= 0; i--) {
var b = bullets[i];
b.update();
// Remove if out of bounds
if (b.x < -100 || b.x > baseWidth + 100 || b.y < -100 || b.y > baseHeight + 100 || b.lifetime <= 0) {
b.destroy();
bullets.splice(i, 1);
continue;
}
// Check collision with enemies
for (var j = enemies.length - 1; j >= 0; j--) {
var e = enemies[j];
if (b.intersects(e)) {
e.hp -= b.damage;
b.destroy();
bullets.splice(i, 1);
// Animate hit
tween(e, {
scaleX: 1.2,
scaleY: 1.2
}, {
duration: 80,
onFinish: function onFinish() {
tween(e, {
scaleX: 1,
scaleY: 1
}, {
duration: 80
});
}
});
if (e.hp <= 0) {
// Enemy destroyed
resources += e.reward;
updateResourceText();
e.destroy();
enemies.splice(j, 1);
}
break;
}
}
}
// Enemies update
for (var i = enemies.length - 1; i >= 0; i--) {
var e = enemies[i];
e.update();
// Check if reached command center
if (e.intersects(commandCenter)) {
commandCenterHP -= 1;
updateHPText();
// Animate base hit
LK.effects.flashObject(commandCenter, 0xff0000, 300);
e.destroy();
enemies.splice(i, 1);
if (commandCenterHP <= 0) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
return;
}
}
}
// Enemy spawn
if (enemiesToSpawn > 0) {
if (spawnTimer <= 0) {
// Spawn enemy at random edge
var edge = Math.floor(Math.random() * 3);
var ex, ey;
if (edge === 0) {
// left
ex = 100;
ey = 600 + Math.random() * 800;
} else if (edge === 1) {
// right
ex = baseWidth - 100;
ey = 600 + Math.random() * 800;
} else {
// top
ex = baseWidth / 2 - 400 + Math.random() * 800;
ey = 100;
}
var enemy = new Enemy();
enemy.x = ex;
enemy.y = ey;
enemies.push(enemy);
game.addChild(enemy);
enemiesToSpawn--;
spawnTimer = Math.max(30, 90 - wave * 2);
} else {
spawnTimer--;
}
} else if (enemies.length === 0) {
// Next wave
wave++;
commandCenterHP = Math.min(10, commandCenterHP + 2);
updateHPText();
startWave();
}
};
// Touch to upgrade turrets directly
game.down = function (x, y, obj) {
// Check if touch is on a turret
for (var i = 0; i < turrets.length; i++) {
var t = turrets[i];
var dx = x - t.x;
var dy = y - t.y;
if (dx * dx + dy * dy < 100 * 100) {
// Try upgrade
if (resources >= turretUpgradeCost(t.level) && t.level < 3) {
resources -= turretUpgradeCost(t.level);
t.upgrade();
updateResourceText();
}
return;
}
}
};
// Prevent placing elements in top left 100x100
// (All GUI is centered or at bottom, so nothing to do here) ===================================================================
--- original.js
+++ change.js
uçan kuş. In-Game asset. 2d. High contrast. No shadows
uçan kaz. In-Game asset. 2d. High contrast. No shadows
bulut. In-Game asset. 2d. High contrast. No shadows
güneş. In-Game asset. 2d. High contrast. No shadows
çimen uzun otlar.. In-Game asset. 2d. High contrast. No shadows
ağaç çınar. In-Game asset. 2d. High contrast. No shadows
karlı büyük dağ.. In-Game asset. 2d. High contrast. No shadows
grii dağlar.. In-Game asset. 2d. High contrast. No shadows
ağaçlı, çimenli dağ.. In-Game asset. 2d. High contrast. No shadows
tüfek saçması.. In-Game asset. 2d. High contrast. No shadows
beyaz kaz tüyü.. In-Game asset. 2d. High contrast. No shadows
kamuflaj giymiş avcı ayakta yukarıya ateş ediyor .gerçek fotoğraf.. In-Game asset. 2d. High contrast. No shadows sırtı bize dönük olsun