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 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 = 3; self.update = function () { self.y += self.speed; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ 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 meteorsPassed = 0; var gameStarted = true; var meteorSpawnTimer = 0; var meteorSpawnInterval = 90; 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 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.update = function () { if (!gameStarted) return; meteorSpawnTimer++; if (meteorSpawnTimer >= meteorSpawnInterval) { spawnMeteor(); meteorSpawnTimer = 0; if (meteorSpawnInterval > 30) { meteorSpawnInterval -= 0.5; } } 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; } } 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; } };
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,144 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+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 = 3;
+ self.update = function () {
+ self.y += self.speed;
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
backgroundColor: 0x000000
-});
\ No newline at end of file
+});
+
+/****
+* Game Code
+****/
+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 meteorsPassed = 0;
+var gameStarted = true;
+var meteorSpawnTimer = 0;
+var meteorSpawnInterval = 90;
+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 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.update = function () {
+ if (!gameStarted) return;
+ meteorSpawnTimer++;
+ if (meteorSpawnTimer >= meteorSpawnInterval) {
+ spawnMeteor();
+ meteorSpawnTimer = 0;
+ if (meteorSpawnInterval > 30) {
+ meteorSpawnInterval -= 0.5;
+ }
+ }
+ 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;
+ }
+ }
+ 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;
+ }
+};
\ No newline at end of file