User prompt
aliene ses ekle
User prompt
birde yaratıklar olsun aynı meteorlar gibi gelsin ve resim eklensin
User prompt
oyuna başlama ekranına arka plan resmi koy
User prompt
oyuna başlama ekranı ekle birde play tuşu olsun ve oyun başlama müziği olsun play a basıldığı zaman müzk dursun ve oyun başlasın
User prompt
meteorların geliş hızını birazcık arttır
User prompt
arka plana siyah bir arka plan resmi koy
User prompt
muz mosue ile sağa sola hareket etsin
Code edit (1 edits merged)
Please save this source code
User prompt
Banana Meteor Defense
Initial prompt
bana uzaylı saldırısı ile ilgili bir oyun yap oyun şöyle olsun ; oyunda siyah bir arka plan olsun ve yukarıdan aşağıya meteorlar gelsin ve alt tarftada bir muz olsun meteorlara muz fırlatılsın muzlar mouse ile tıklanıldığında ateş etsin ve her bir meteor yok oluşunda yukarıda skor yazsın beyaz yazı ile ve muz atış sesi olsun ve meteor yok olduğu zamanda ses olsun ve 20 meteor muzun gerisine düşerse oyun bitsin ve oyun bitiş müziği olsun
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Alien = Container.expand(function () { var self = Container.call(this); var alienGraphics = self.attachAsset('alien', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.update = function () { self.y += self.speed; }; return self; }); var Banana = Container.expand(function () { var self = Container.call(this); var bananaGraphics = self.attachAsset('banana', { anchorX: 0.5, anchorY: 0.5 }); return self; }); var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -12; self.update = function () { self.y += self.speed; }; return self; }); var Meteor = Container.expand(function () { var self = Container.call(this); var meteorGraphics = self.attachAsset('meteor', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.update = function () { self.y += self.speed; }; return self; }); var StartMenu = Container.expand(function () { var self = Container.call(this); var backgroundGraphics = self.attachAsset('startMenuBackground', { x: 0, y: 0 }); var titleText = new Text2('BANANA METEOR DEFENSE', { size: 120, fill: 0xFFFFFF }); titleText.anchor.set(0.5, 0.5); titleText.x = 2048 / 2; titleText.y = 2732 / 2 - 200; self.addChild(titleText); var playButton = new Text2('PLAY', { size: 100, fill: 0x00FF00 }); playButton.anchor.set(0.5, 0.5); playButton.x = 2048 / 2; playButton.y = 2732 / 2 + 100; self.addChild(playButton); playButton.down = function (x, y, obj) { LK.stopMusic(); startGame(); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ var spaceBackground = game.attachAsset('spaceBackground', { x: 0, y: 0 }); var banana = game.addChild(new Banana()); banana.x = 2048 / 2; banana.y = 2732 - 150; var scoreTxt = new Text2('Score: 0', { size: 80, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); var bullets = []; var meteors = []; var aliens = []; var meteorsPassed = 0; var gameStarted = false; var meteorSpawnTimer = 0; var meteorSpawnInterval = 90; var alienSpawnTimer = 0; var alienSpawnInterval = 120; var startMenu = null; function startGame() { if (startMenu) { startMenu.destroy(); startMenu = null; } gameStarted = true; } function showStartMenu() { gameStarted = false; startMenu = game.addChild(new StartMenu()); LK.playMusic('startMenuMusic'); } // Show start menu when game loads showStartMenu(); function spawnMeteor() { var meteor = new Meteor(); meteor.x = Math.random() * (2048 - 100) + 50; meteor.y = -50; meteor.lastY = meteor.y; meteors.push(meteor); game.addChild(meteor); } function spawnAlien() { var alien = new Alien(); alien.x = Math.random() * (2048 - 100) + 50; alien.y = -50; alien.lastY = alien.y; //{alien_spawn} aliens.push(alien); game.addChild(alien); } //{alien_spawn_end} function shootBullet() { if (!gameStarted) return; var bullet = new Bullet(); bullet.x = banana.x; bullet.y = banana.y - 60; bullet.lastY = bullet.y; bullets.push(bullet); game.addChild(bullet); LK.getSound('shoot').play(); } game.down = function (x, y, obj) { shootBullet(); }; game.move = function (x, y, obj) { if (!gameStarted) return; banana.x = x; // Keep banana within screen bounds if (banana.x < 40) banana.x = 40; if (banana.x > 2048 - 40) banana.x = 2048 - 40; }; game.update = function () { if (!gameStarted) return; meteorSpawnTimer++; if (meteorSpawnTimer >= meteorSpawnInterval) { spawnMeteor(); meteorSpawnTimer = 0; if (meteorSpawnInterval > 30) { meteorSpawnInterval -= 0.5; } } alienSpawnTimer++; if (alienSpawnTimer >= alienSpawnInterval) { spawnAlien(); alienSpawnTimer = 0; if (alienSpawnInterval > 60) { alienSpawnInterval -= 0.5; } //{alien_interval} } //{alien_interval_end} for (var i = bullets.length - 1; i >= 0; i--) { var bullet = bullets[i]; if (bullet.lastY === undefined) bullet.lastY = bullet.y; if (bullet.lastY >= -30 && bullet.y < -30) { bullet.destroy(); bullets.splice(i, 1); continue; } for (var j = meteors.length - 1; j >= 0; j--) { var meteor = meteors[j]; if (bullet.intersects(meteor)) { LK.setScore(LK.getScore() + 1); scoreTxt.setText('Score: ' + LK.getScore()); LK.getSound('meteorDestroy').play(); LK.effects.flashObject(meteor, 0xFF4500, 300); bullet.destroy(); bullets.splice(i, 1); meteor.destroy(); meteors.splice(j, 1); break; } } for (var a = aliens.length - 1; a >= 0; a--) { var alien = aliens[a]; if (bullet.intersects(alien)) { LK.setScore(LK.getScore() + 2); scoreTxt.setText('Score: ' + LK.getScore()); LK.getSound('alienDestroy').play(); LK.effects.flashObject(alien, 0xFF4500, 300); bullet.destroy(); //{alien_bullet} bullets.splice(i, 1); //{alien_bullet2} alien.destroy(); //{alien_bullet3} aliens.splice(a, 1); break; } //{alien_bullet4} } //{alien_bullet5} if (bullets[i]) { bullet.lastY = bullet.y; } } for (var k = meteors.length - 1; k >= 0; k--) { var meteor = meteors[k]; if (meteor.lastY === undefined) meteor.lastY = meteor.y; if (meteor.lastY <= 2732 && meteor.y > 2732) { meteorsPassed++; meteor.destroy(); meteors.splice(k, 1); if (meteorsPassed >= 20) { gameStarted = false; LK.playMusic('gameOverMusic', { loop: false }); LK.setTimeout(function () { LK.showGameOver(); }, 1000); } continue; } meteor.lastY = meteor.y; } for (var l = aliens.length - 1; l >= 0; l--) { var alien = aliens[l]; if (alien.lastY === undefined) alien.lastY = alien.y; if (alien.lastY <= 2732 && alien.y > 2732) { meteorsPassed++; alien.destroy(); //{alien_passed} aliens.splice(l, 1); if (meteorsPassed >= 20) { gameStarted = false; //{alien_passed2} LK.playMusic('gameOverMusic', { loop: false }); //{alien_passed3} LK.setTimeout(function () { LK.showGameOver(); }, 1000); } //{alien_passed4} continue; //{alien_passed5} } //{alien_passed6} alien.lastY = alien.y; //{alien_passed7} } //{alien_passed8} };
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Alien = Container.expand(function () {
var self = Container.call(this);
var alienGraphics = self.attachAsset('alien', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.update = function () {
self.y += self.speed;
};
return self;
});
var Banana = Container.expand(function () {
var self = Container.call(this);
var bananaGraphics = self.attachAsset('banana', {
anchorX: 0.5,
anchorY: 0.5
});
return self;
});
var Bullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = -12;
self.update = function () {
self.y += self.speed;
};
return self;
});
var Meteor = Container.expand(function () {
var self = Container.call(this);
var meteorGraphics = self.attachAsset('meteor', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.update = function () {
self.y += self.speed;
};
return self;
});
var StartMenu = Container.expand(function () {
var self = Container.call(this);
var backgroundGraphics = self.attachAsset('startMenuBackground', {
x: 0,
y: 0
});
var titleText = new Text2('BANANA METEOR DEFENSE', {
size: 120,
fill: 0xFFFFFF
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 2048 / 2;
titleText.y = 2732 / 2 - 200;
self.addChild(titleText);
var playButton = new Text2('PLAY', {
size: 100,
fill: 0x00FF00
});
playButton.anchor.set(0.5, 0.5);
playButton.x = 2048 / 2;
playButton.y = 2732 / 2 + 100;
self.addChild(playButton);
playButton.down = function (x, y, obj) {
LK.stopMusic();
startGame();
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
var spaceBackground = game.attachAsset('spaceBackground', {
x: 0,
y: 0
});
var banana = game.addChild(new Banana());
banana.x = 2048 / 2;
banana.y = 2732 - 150;
var scoreTxt = new Text2('Score: 0', {
size: 80,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
var bullets = [];
var meteors = [];
var aliens = [];
var meteorsPassed = 0;
var gameStarted = false;
var meteorSpawnTimer = 0;
var meteorSpawnInterval = 90;
var alienSpawnTimer = 0;
var alienSpawnInterval = 120;
var startMenu = null;
function startGame() {
if (startMenu) {
startMenu.destroy();
startMenu = null;
}
gameStarted = true;
}
function showStartMenu() {
gameStarted = false;
startMenu = game.addChild(new StartMenu());
LK.playMusic('startMenuMusic');
}
// Show start menu when game loads
showStartMenu();
function spawnMeteor() {
var meteor = new Meteor();
meteor.x = Math.random() * (2048 - 100) + 50;
meteor.y = -50;
meteor.lastY = meteor.y;
meteors.push(meteor);
game.addChild(meteor);
}
function spawnAlien() {
var alien = new Alien();
alien.x = Math.random() * (2048 - 100) + 50;
alien.y = -50;
alien.lastY = alien.y; //{alien_spawn}
aliens.push(alien);
game.addChild(alien);
} //{alien_spawn_end}
function shootBullet() {
if (!gameStarted) return;
var bullet = new Bullet();
bullet.x = banana.x;
bullet.y = banana.y - 60;
bullet.lastY = bullet.y;
bullets.push(bullet);
game.addChild(bullet);
LK.getSound('shoot').play();
}
game.down = function (x, y, obj) {
shootBullet();
};
game.move = function (x, y, obj) {
if (!gameStarted) return;
banana.x = x;
// Keep banana within screen bounds
if (banana.x < 40) banana.x = 40;
if (banana.x > 2048 - 40) banana.x = 2048 - 40;
};
game.update = function () {
if (!gameStarted) return;
meteorSpawnTimer++;
if (meteorSpawnTimer >= meteorSpawnInterval) {
spawnMeteor();
meteorSpawnTimer = 0;
if (meteorSpawnInterval > 30) {
meteorSpawnInterval -= 0.5;
}
}
alienSpawnTimer++;
if (alienSpawnTimer >= alienSpawnInterval) {
spawnAlien();
alienSpawnTimer = 0;
if (alienSpawnInterval > 60) {
alienSpawnInterval -= 0.5;
} //{alien_interval}
} //{alien_interval_end}
for (var i = bullets.length - 1; i >= 0; i--) {
var bullet = bullets[i];
if (bullet.lastY === undefined) bullet.lastY = bullet.y;
if (bullet.lastY >= -30 && bullet.y < -30) {
bullet.destroy();
bullets.splice(i, 1);
continue;
}
for (var j = meteors.length - 1; j >= 0; j--) {
var meteor = meteors[j];
if (bullet.intersects(meteor)) {
LK.setScore(LK.getScore() + 1);
scoreTxt.setText('Score: ' + LK.getScore());
LK.getSound('meteorDestroy').play();
LK.effects.flashObject(meteor, 0xFF4500, 300);
bullet.destroy();
bullets.splice(i, 1);
meteor.destroy();
meteors.splice(j, 1);
break;
}
}
for (var a = aliens.length - 1; a >= 0; a--) {
var alien = aliens[a];
if (bullet.intersects(alien)) {
LK.setScore(LK.getScore() + 2);
scoreTxt.setText('Score: ' + LK.getScore());
LK.getSound('alienDestroy').play();
LK.effects.flashObject(alien, 0xFF4500, 300);
bullet.destroy(); //{alien_bullet}
bullets.splice(i, 1); //{alien_bullet2}
alien.destroy(); //{alien_bullet3}
aliens.splice(a, 1);
break;
} //{alien_bullet4}
} //{alien_bullet5}
if (bullets[i]) {
bullet.lastY = bullet.y;
}
}
for (var k = meteors.length - 1; k >= 0; k--) {
var meteor = meteors[k];
if (meteor.lastY === undefined) meteor.lastY = meteor.y;
if (meteor.lastY <= 2732 && meteor.y > 2732) {
meteorsPassed++;
meteor.destroy();
meteors.splice(k, 1);
if (meteorsPassed >= 20) {
gameStarted = false;
LK.playMusic('gameOverMusic', {
loop: false
});
LK.setTimeout(function () {
LK.showGameOver();
}, 1000);
}
continue;
}
meteor.lastY = meteor.y;
}
for (var l = aliens.length - 1; l >= 0; l--) {
var alien = aliens[l];
if (alien.lastY === undefined) alien.lastY = alien.y;
if (alien.lastY <= 2732 && alien.y > 2732) {
meteorsPassed++;
alien.destroy(); //{alien_passed}
aliens.splice(l, 1);
if (meteorsPassed >= 20) {
gameStarted = false; //{alien_passed2}
LK.playMusic('gameOverMusic', {
loop: false
}); //{alien_passed3}
LK.setTimeout(function () {
LK.showGameOver();
}, 1000);
} //{alien_passed4}
continue; //{alien_passed5}
} //{alien_passed6}
alien.lastY = alien.y; //{alien_passed7}
} //{alien_passed8}
};