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
havan. In-Game asset. 2d. High contrast. No shadows
mızrak ucu yukarı olsun.. In-Game asset. 2d. High contrast. No shadows uzun ve ince saplı.
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