User prompt
level sayısını göster 100
User prompt
ekranda göster
Code edit (1 edits merged)
Please save this source code
User prompt
game.js sil
User prompt
(l14) Sil
User prompt
L14 sil
User prompt
her seviyede 5 dalga düşman olsun ve sayıları değişken olsun
User prompt
defans oyunu yap
User prompt
My weapon should be able to reach every part of the screen, be easy to control, have tracers and fire bullets.
User prompt
silahımız ekranın tamamına ulaşabilsin ve kontrolü kolay olsun
User prompt
yıldızlar ve uzay boşluğu arka planda olsun
User prompt
arkaplanı manzara resmi koy
User prompt
müzik ekle
User prompt
düşman çoğaldıkça mermi yoğunluğu artsın
User prompt
düşman hızı yavaş ve her aşamada aynı olsun
User prompt
silahtan çıkan mermiler çoklu olsun ve alana yayılsın
User prompt
düşman hızı yavaş olsun
Code edit (1 edits merged)
Please save this source code
User prompt
Horde Defense: Sonsuz Dalga
Initial prompt
hordo defense tarzında bir oyun yaparmısın
/**** * Classes ****/ var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemyBox', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 2; self.update = function () { self.y += self.speed; }; return self; }); // Set background var Hero = Container.expand(function () { var self = Container.call(this); var heroGraphics = self.attachAsset('heroBox', { anchorX: 0.5, anchorY: 0.5 }); self.fireRate = 5; // Fire every 5 ticks (4x faster) self.lastFire = 0; self.barrels = 1; // Start with 1 barrel self.update = function () { // Auto fire bullets if (LK.ticks - self.lastFire > self.fireRate) { self.lastFire = LK.ticks; // Fire bullets from multiple barrels for (var b = 0; b < self.barrels; b++) { var bullet = new HeroBullet(); // Calculate bullet position to spread horizontally toward top of screen var totalWidth = (self.barrels - 1) * 80; // 80 pixels apart horizontally var offsetX = b * 80 - totalWidth / 2; // Center the spread bullet.x = self.x + offsetX; bullet.y = self.y - 50; heroBullets.push(bullet); game.addChild(bullet); } } }; return self; }); var HeroBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('heroBullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -60; self.update = function () { self.y += self.speed; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ // Set background game.setBackgroundColor(0x001122); // Game variables var hero; var enemies = []; var heroBullets = []; var waveNumber = 1; var enemiesSpawned = 0; var enemiesPerWave = 5; var spawnTimer = 0; var spawnRate = 60; // Spawn every 60 ticks initially var dragNode = null; // Create hero hero = new Hero(); hero.x = 2048 / 2; hero.y = 2732 - 200; game.addChild(hero); // Score display var scoreTxt = new Text2('Score: 0', { size: 80, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Wave display var waveTxt = new Text2('Wave: 1', { size: 60, fill: 0xFFFF00 }); waveTxt.anchor.set(0, 0); waveTxt.x = 50; waveTxt.y = 50; LK.gui.topLeft.addChild(waveTxt); // Touch controls game.down = function (x, y, obj) { dragNode = hero; hero.x = x; hero.y = y; }; game.move = function (x, y, obj) { if (dragNode) { dragNode.x = x; dragNode.y = y; } }; game.up = function (x, y, obj) { dragNode = null; }; // Main game loop game.update = function () { // Spawn enemies spawnTimer++; if (spawnTimer >= spawnRate && enemiesSpawned < enemiesPerWave) { spawnTimer = 0; var enemy = new Enemy(); enemy.x = Math.random() * (2048 - 200) + 100; enemy.y = -100; enemy.speed = 2 + waveNumber * 0.5; // Increase speed with waves enemies.push(enemy); game.addChild(enemy); enemiesSpawned++; } // Update and check bullet collisions for (var i = heroBullets.length - 1; i >= 0; i--) { var bullet = heroBullets[i]; // Remove bullets that go off screen if (bullet.y < -50) { bullet.destroy(); heroBullets.splice(i, 1); continue; } // Check collision with enemies for (var j = enemies.length - 1; j >= 0; j--) { var enemy = enemies[j]; if (bullet.intersects(enemy)) { // Enemy hit LK.setScore(LK.getScore() + 10); scoreTxt.setText('Score: ' + LK.getScore()); // Remove bullet and enemy bullet.destroy(); enemy.destroy(); heroBullets.splice(i, 1); enemies.splice(j, 1); break; } } } // Update and check enemy collisions with hero for (var k = enemies.length - 1; k >= 0; k--) { var enemy = enemies[k]; // Check if enemy reached hero if (enemy.intersects(hero)) { LK.showGameOver(); return; } // Remove enemies that go off screen if (enemy.y > 2732 + 100) { enemy.destroy(); enemies.splice(k, 1); } } // Check if wave is complete if (enemies.length === 0 && enemiesSpawned >= enemiesPerWave) { waveNumber++; waveTxt.setText('Wave: ' + waveNumber); enemiesSpawned = 0; enemiesPerWave = Math.min(5 + waveNumber, 15); // Increase enemies per wave spawnRate = Math.max(30, 60 - waveNumber * 2); // Decrease spawn rate // Increase barrels every 5 waves hero.barrels = Math.floor(waveNumber / 5) + 1; } }; // Start background music LK.playMusic('1a439');
/****
* Classes
****/
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemyBox', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 2;
self.update = function () {
self.y += self.speed;
};
return self;
});
// Set background
var Hero = Container.expand(function () {
var self = Container.call(this);
var heroGraphics = self.attachAsset('heroBox', {
anchorX: 0.5,
anchorY: 0.5
});
self.fireRate = 5; // Fire every 5 ticks (4x faster)
self.lastFire = 0;
self.barrels = 1; // Start with 1 barrel
self.update = function () {
// Auto fire bullets
if (LK.ticks - self.lastFire > self.fireRate) {
self.lastFire = LK.ticks;
// Fire bullets from multiple barrels
for (var b = 0; b < self.barrels; b++) {
var bullet = new HeroBullet();
// Calculate bullet position to spread horizontally toward top of screen
var totalWidth = (self.barrels - 1) * 80; // 80 pixels apart horizontally
var offsetX = b * 80 - totalWidth / 2; // Center the spread
bullet.x = self.x + offsetX;
bullet.y = self.y - 50;
heroBullets.push(bullet);
game.addChild(bullet);
}
}
};
return self;
});
var HeroBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('heroBullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = -60;
self.update = function () {
self.y += self.speed;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
// Set background
game.setBackgroundColor(0x001122);
// Game variables
var hero;
var enemies = [];
var heroBullets = [];
var waveNumber = 1;
var enemiesSpawned = 0;
var enemiesPerWave = 5;
var spawnTimer = 0;
var spawnRate = 60; // Spawn every 60 ticks initially
var dragNode = null;
// Create hero
hero = new Hero();
hero.x = 2048 / 2;
hero.y = 2732 - 200;
game.addChild(hero);
// Score display
var scoreTxt = new Text2('Score: 0', {
size: 80,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Wave display
var waveTxt = new Text2('Wave: 1', {
size: 60,
fill: 0xFFFF00
});
waveTxt.anchor.set(0, 0);
waveTxt.x = 50;
waveTxt.y = 50;
LK.gui.topLeft.addChild(waveTxt);
// Touch controls
game.down = function (x, y, obj) {
dragNode = hero;
hero.x = x;
hero.y = y;
};
game.move = function (x, y, obj) {
if (dragNode) {
dragNode.x = x;
dragNode.y = y;
}
};
game.up = function (x, y, obj) {
dragNode = null;
};
// Main game loop
game.update = function () {
// Spawn enemies
spawnTimer++;
if (spawnTimer >= spawnRate && enemiesSpawned < enemiesPerWave) {
spawnTimer = 0;
var enemy = new Enemy();
enemy.x = Math.random() * (2048 - 200) + 100;
enemy.y = -100;
enemy.speed = 2 + waveNumber * 0.5; // Increase speed with waves
enemies.push(enemy);
game.addChild(enemy);
enemiesSpawned++;
}
// Update and check bullet collisions
for (var i = heroBullets.length - 1; i >= 0; i--) {
var bullet = heroBullets[i];
// Remove bullets that go off screen
if (bullet.y < -50) {
bullet.destroy();
heroBullets.splice(i, 1);
continue;
}
// Check collision with enemies
for (var j = enemies.length - 1; j >= 0; j--) {
var enemy = enemies[j];
if (bullet.intersects(enemy)) {
// Enemy hit
LK.setScore(LK.getScore() + 10);
scoreTxt.setText('Score: ' + LK.getScore());
// Remove bullet and enemy
bullet.destroy();
enemy.destroy();
heroBullets.splice(i, 1);
enemies.splice(j, 1);
break;
}
}
}
// Update and check enemy collisions with hero
for (var k = enemies.length - 1; k >= 0; k--) {
var enemy = enemies[k];
// Check if enemy reached hero
if (enemy.intersects(hero)) {
LK.showGameOver();
return;
}
// Remove enemies that go off screen
if (enemy.y > 2732 + 100) {
enemy.destroy();
enemies.splice(k, 1);
}
}
// Check if wave is complete
if (enemies.length === 0 && enemiesSpawned >= enemiesPerWave) {
waveNumber++;
waveTxt.setText('Wave: ' + waveNumber);
enemiesSpawned = 0;
enemiesPerWave = Math.min(5 + waveNumber, 15); // Increase enemies per wave
spawnRate = Math.max(30, 60 - waveNumber * 2); // Decrease spawn rate
// Increase barrels every 5 waves
hero.barrels = Math.floor(waveNumber / 5) + 1;
}
};
// Start background music
LK.playMusic('1a439');
uzay aracı olsun . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
ahtapot şekilli canavar olsun. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
uzay aracı olsun . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat