User prompt
Oyunda bi topu vurduğumuzda yanda %6 şansla sadece 3 dk boyunca +30 daha fazla güç veya aynı anda 2 ok firlatma aktive gelsin ekranda sağ köşede bu özelliklerin dakikası ve bitme zamanı ve özellikle ismi gözüksün ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Oyuna süre zamanı ekle toplam 30 dk olsun ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Toplar ve bombalar sağa sola ve çapraz hareket etsin hepsi farklı yerlere hareket etsin ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Toplar ve bombalar sadece yukarda dursun ve sağa sağa hareket edebilsin ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Oyunu optimize et ve düzelt
User prompt
Bombalar ve topları yukarda hareket ettie ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Sadece yukarda hareket edebilsinler
User prompt
Ele kadar kaçamasınlar ortada en fazla
User prompt
Bombalar toplar aşağıdada çok aşağı olmadan hareket edebilsin biraz hizlandir hepsini ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Arka plana cs2 Dust 2 fotoğrafını ekle
User prompt
Ok hızını çok az hizlandir
User prompt
Bombalar ve toplar hareket etsin hızları orta olsun
User prompt
Can barlarini aşağı al diğer seçenek ise oyuna başlamadan önce play ekranı olsun
User prompt
Eklediğim müziği oyuna ekle
User prompt
Yok olan topları rastgele oluştur diğer bir seçenek ise topa vurduğumuzda puan sesi ekle bombaya vurdugumuzda bomba sesi ekle.
User prompt
Eli yukari doğru kaldıramayak tamamen onu sadece 3 adım ilerletebilek lütfen köşeye can puanını rkle 5 kere bombaya basarsak oyunu sıfırdan başlat
User prompt
Oyun donuyor optimizasyon yap
User prompt
Toplar yan yana birleşik olmasın aralarında mesefe olsun lütfen
User prompt
Toplar dokunmatik ekranla patlatilmasin ve toplar çok fazla olsun ok yönüde yukari doğru olsun bombayı patlatinca can gitsin toplamda 5 can olsun sağ yukarda kalpler gözüksün.
User prompt
Topların hepsi yan yana dursun ve patlamadan yenisi gelmesin topları vurmak için aşağıdan el çıksın ve ona basılı tutarak ok fırlatsın
User prompt
Şimdi Bir top patlatma oyunu yapicaz kırmızı toplar sarı toplar mavi toplar olacak aralarında bomba olsun onları patlatırsak -30 puan alıyoruz, kırmızı toplar 40 puan sarı toplar 60 puan mavi toplar 70 puan olsun, top sayıları eşit olsun.
User prompt
Bu oyunu tamamen sil
Code edit (1 edits merged)
Please save this source code
User prompt
Garden Defense: Plants vs Invaders
Initial prompt
Plants Vs Zombies oyunundaki gibi bir bahçe ardından savunmak için bitkileri ve arkasında bahçe makinesi toplamda oyun başladıktan sonra 30 sn sonra zombiler gelsin.
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000
}); ===================================================================
--- original.js
+++ change.js
@@ -1,305 +1,6 @@
-/****
-* Plugins
-****/
-var tween = LK.import("@upit/tween.v1");
-
-/****
-* Classes
-****/
-var Bullet = Container.expand(function () {
- var self = Container.call(this);
- var bulletGraphics = self.attachAsset('bullet', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.speed = 3;
- self.damage = 25;
- self.lane = 0;
- self.update = function () {
- self.x += self.speed;
- // Check collision with zombies in same lane
- for (var i = zombies.length - 1; i >= 0; i--) {
- var zombie = zombies[i];
- if (zombie.lane === self.lane && self.intersects(zombie)) {
- zombie.takeDamage(self.damage);
- self.destroy();
- for (var j = bullets.length - 1; j >= 0; j--) {
- if (bullets[j] === self) {
- bullets.splice(j, 1);
- break;
- }
- }
- return;
- }
- }
- // Remove bullet if it goes off screen
- if (self.x > 2100) {
- self.destroy();
- for (var k = bullets.length - 1; k >= 0; k--) {
- if (bullets[k] === self) {
- bullets.splice(k, 1);
- break;
- }
- }
- }
- };
- return self;
-});
-var GrassPlot = Container.expand(function () {
- var self = Container.call(this);
- var grassGraphics = self.attachAsset('grass', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.occupied = false;
- self.plant = null;
- self.down = function (x, y, obj) {
- if (!self.occupied && sunCount >= plantCost && !gameStarted) {
- self.placePlant();
- }
- };
- self.placePlant = function () {
- if (sunCount >= plantCost) {
- sunCount -= plantCost;
- sunText.setText('Sun: ' + sunCount);
- var newPlant = new Plant();
- newPlant.x = self.x;
- newPlant.y = self.y;
- newPlant.lane = self.lane;
- plants.push(newPlant);
- game.addChild(newPlant);
- self.occupied = true;
- self.plant = newPlant;
- LK.getSound('plant').play();
- }
- };
- return self;
-});
-var Plant = Container.expand(function () {
- var self = Container.call(this);
- var plantGraphics = self.attachAsset('plant', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.health = 100;
- self.shootCooldown = 0;
- self.shootRate = 60; // Shoot every 60 ticks (1 second)
- self.lane = 0;
- self.update = function () {
- if (self.shootCooldown > 0) {
- self.shootCooldown--;
- }
- // Check if there's a zombie in this lane to shoot at
- if (self.shootCooldown <= 0) {
- for (var i = 0; i < zombies.length; i++) {
- var zombie = zombies[i];
- if (zombie.lane === self.lane && zombie.x > self.x) {
- self.shoot();
- break;
- }
- }
- }
- };
- self.shoot = function () {
- self.shootCooldown = self.shootRate;
- var bullet = new Bullet();
- bullet.x = self.x + 50;
- bullet.y = self.y;
- bullet.lane = self.lane;
- bullets.push(bullet);
- game.addChild(bullet);
- LK.getSound('shoot').play();
- };
- return self;
-});
-var Sun = Container.expand(function () {
- var self = Container.call(this);
- var sunGraphics = self.attachAsset('sun', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.value = 25;
- self.lifetime = 600; // 10 seconds
- self.down = function (x, y, obj) {
- self.collect();
- };
- self.collect = function () {
- sunCount += self.value;
- sunText.setText('Sun: ' + sunCount);
- LK.getSound('collect').play();
- self.destroy();
- for (var i = suns.length - 1; i >= 0; i--) {
- if (suns[i] === self) {
- suns.splice(i, 1);
- break;
- }
- }
- };
- self.update = function () {
- self.lifetime--;
- if (self.lifetime <= 0) {
- self.destroy();
- for (var i = suns.length - 1; i >= 0; i--) {
- if (suns[i] === self) {
- suns.splice(i, 1);
- break;
- }
- }
- }
- };
- return self;
-});
-var Zombie = Container.expand(function () {
- var self = Container.call(this);
- var zombieGraphics = self.attachAsset('zombie', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.health = 100;
- self.speed = 0.5;
- self.lane = 0;
- self.update = function () {
- self.x -= self.speed;
- // Check if zombie reached the left side
- if (self.x <= 100) {
- LK.showGameOver();
- }
- };
- self.takeDamage = function (damage) {
- self.health -= damage;
- if (self.health <= 0) {
- self.destroy();
- for (var i = zombies.length - 1; i >= 0; i--) {
- if (zombies[i] === self) {
- zombies.splice(i, 1);
- break;
- }
- }
- }
- };
- return self;
-});
-
-/****
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x87CEEB
-});
-
-/****
-* Game Code
-****/
-var grassPlots = [];
-var plants = [];
-var zombies = [];
-var bullets = [];
-var suns = [];
-var sunCount = 150;
-var plantCost = 100;
-var gameStarted = false;
-var preparationTime = 1800; // 30 seconds at 60fps
-var waveTimer = 0;
-var currentWave = 1;
-var zombiesInWave = 3;
-// Create UI elements
-var sunText = new Text2('Sun: ' + sunCount, {
- size: 40,
- fill: 0xFFFFFF
-});
-sunText.anchor.set(0, 0);
-sunText.x = 120;
-sunText.y = 50;
-LK.gui.topLeft.addChild(sunText);
-var timerText = new Text2('Preparation: 30', {
- size: 40,
- fill: 0xFFFFFF
-});
-timerText.anchor.set(0.5, 0);
-LK.gui.top.addChild(timerText);
-var waveText = new Text2('Wave: 1', {
- size: 40,
- fill: 0xFFFFFF
-});
-waveText.anchor.set(1, 0);
-waveText.x = -50;
-waveText.y = 50;
-LK.gui.topRight.addChild(waveText);
-// Create garden machine
-var gardenMachine = game.addChild(LK.getAsset('gardenMachine', {
- anchorX: 0.5,
- anchorY: 0.5
-}));
-gardenMachine.x = 100;
-gardenMachine.y = 200;
-// Create grass plots in a grid (5 lanes, 9 columns)
-for (var lane = 0; lane < 5; lane++) {
- for (var col = 0; col < 9; col++) {
- var plot = new GrassPlot();
- plot.x = 300 + col * 190;
- plot.y = 400 + lane * 130;
- plot.lane = lane;
- grassPlots.push(plot);
- game.addChild(plot);
- }
-}
-function spawnZombie() {
- var zombie = new Zombie();
- zombie.x = 2000;
- zombie.lane = Math.floor(Math.random() * 5);
- zombie.y = 400 + zombie.lane * 130;
- zombies.push(zombie);
- game.addChild(zombie);
-}
-function spawnSun() {
- var sun = new Sun();
- sun.x = Math.random() * 1800 + 200;
- sun.y = Math.random() * 400 + 300;
- suns.push(sun);
- game.addChild(sun);
-}
-game.update = function () {
- // Handle preparation phase
- if (!gameStarted) {
- preparationTime--;
- var secondsLeft = Math.ceil(preparationTime / 60);
- timerText.setText('Preparation: ' + secondsLeft);
- if (preparationTime <= 0) {
- gameStarted = true;
- timerText.setText('Fight!');
- }
- }
- // Spawn suns from garden machine
- if (LK.ticks % 300 === 0) {
- // Every 5 seconds
- spawnSun();
- }
- // Handle zombie spawning during game
- if (gameStarted) {
- waveTimer++;
- // Spawn zombies for current wave
- if (waveTimer % 180 === 0 && zombiesInWave > 0) {
- // Every 3 seconds
- spawnZombie();
- zombiesInWave--;
- }
- // Start next wave when current wave is complete and no zombies left
- if (zombiesInWave <= 0 && zombies.length === 0) {
- currentWave++;
- zombiesInWave = 3 + currentWave; // Increase zombies per wave
- waveTimer = 0;
- waveText.setText('Wave: ' + currentWave);
- // Check win condition
- if (currentWave > 10) {
- LK.showYouWin();
- }
- }
- }
- // Clean up off-screen bullets
- for (var i = bullets.length - 1; i >= 0; i--) {
- if (bullets[i].x > 2100) {
- bullets[i].destroy();
- bullets.splice(i, 1);
- }
- }
-};
\ No newline at end of file
+ backgroundColor: 0x000000
+});
\ No newline at end of file