User prompt
Oyuncuya hasar aldığında bir hasar alma animasyonu ekle. Düşmanlara da öldüklerinde hafif bir yok olma animasyonu ekle. Ayrıca, oyuncu bir güçlendirme aldığında, karaktere hafif bir büyüyüp küçülme animasyonu ekle. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Speed değeri 10 olduktan sonra artmasın ve bu noktadan sonra Speed güçlendirmesi artık düşmesin. Ayrıca, düşmanlar en alt çizgiye gelirlerse oyuncu hasar alsın.
User prompt
Please fix the bug: 'ReferenceError: AttackSpeedUpgrade is not defined' in or related to this line: 'var attackUpgrade = new AttackSpeedUpgrade();' Line Number: 418
User prompt
Normal düşmanların boyutunu ve her 2 dakikada bir gelen güçlü düşmanın boyutunu artır. Ayrıca, her özellik için güçlendirmeleri ayır ve her birinin farklı renkte güçlendirmesi olsun: Damage güçlendirmesi sarı, Speed mavi, Multishot bordo, Fire Rate turuncu olsun. Fire Rate 8'e ulaştıktan sonra artık bu güçlendirme düşmesin.
User prompt
Bazen güçlendirme aldığımda hasarımda bir anda çok fazla artış gözlemliyorum, bunu istemiyorum. Hasar artışı bir bir olsun.
User prompt
Düşmanların her 30 saniyede bir canlarının 10 artması kalsın, ama buna ek olarak her 1 dakikada bir canlarının ayrıca 20 artmasını istiyorum. Ayrıca, her 2 dakikada bir aşırı yüksek cana sahip bir düşman eklensin; bu düşmanın başlangıç canı 250 olsun ve her gelişinde (her 2 dakikada bir) +250 can eklenerek gelsin.
User prompt
Skor sürekli artmasın biz düşman öldürünce artsın istiyorum ve distance kaldır
User prompt
Düşmanlar çok kenarlara yaklaşmasınlar 25 piksel sınır koymanı istiyorum sınırlara hem güçlendirmeler için hemde düşmanlar için
User prompt
Güçlendirmeler aşağı doğru çok yavaş geliyor onların hızını 2 katına çıkar
User prompt
Güçlendirmeler çok yavaş düşüyor onları hızlandır
User prompt
Saldırı hızımın üst değeri 8 olsun ve 8'e ulaştıktan sonra artık hiç artmasın. Ayrıca, düşmanların güçlenme aralığını 30 saniyede bir olacak şekilde değiştirmeni istiyorum.
User prompt
Saldırı hızı değerim azaldıkça saldırı hızım artıyor; ben bunu istemiyorum. Saldırı hızım 1 olarak başlasın ve her bir tane aldığımda bir artsın; yani saldırı hızım gerçekten artsın istiyorum.
User prompt
Saldırı hızım azaldıkça değil, arttıkça hızlansın. Ayrıca, Multishot 5'e ulaştıktan sonra 6. kez Multishot güçlendirmesi alındığında, mermi sayısı 1'e düşsün ama hasara +3 eklensin şeklinde ayarla.
User prompt
Güçlendirme düşme olasılıkları şöyle olsun: Multishot %10, Speed %20, Damage %20, Fire Rate %25. Ekstra can güçlendirmesi de eklensin, bu yeşil olsun ve düşme oranı %5 olsun.
User prompt
Düşmanlardan düşen güçlendirme olasılığını düşür ve her 1 dakikada bir güçlenen düşmanların can miktarını on on artır.
User prompt
Güçlendirmeleri, düşmanlar öldükten sonra belli bir oranda düşecek şekilde ayarla. Ayrıca, her 1 dakikada bir düşmanların canı artsın. Canavarlardan düşen güçlendirmelerin yanında, çok daha nadir bir şekilde güçlendirmelerin normal yolla da gelmesini istiyorum. Güçlendirmeler rastgele bir değer vermek yerine, belli oranlarla artış sağlasın. Aldığım her güçlendirmenin etkisi kalıcı olsun ve beni yavaş yavaş güçlendirsin.
User prompt
Orta çizgiyi kaldırmanı istiyorum ve düşmanlarla güçlendirmelerin aynı yerden, karışık olarak gelmesini istiyorum. Bir de, sahip olduğum güçlendirmelerin görünmesi için, sağda canımın göründüğü yere sahip olduğum güçlendirmeleri de ekle. Ayrıca, gelen güçlendirmelerin miktarını azalt.
User prompt
Tamam, şimdi gelen düşmanları ve gelen güçlendirme özelliklerini geldikleri tarafların ortasında yapma. Mesela, sol taraftan gelen düşmanlar sol tarafın içinde kalmak şartıyla herhangi bir yerinden gelsin. Aynı şey güçlendirmeler için de geçerli olsun.
User prompt
Saldırı hızı azalt ve saldırı hızını artıran eklentiler ekle (mor olsun). Ayrıca, düşmanların can seviyeleri üstlerinde gösterilsin.
User prompt
Tamam, şimdi karakterimizin ateş etmesini sağla ve gelen düşmanların sağlıkları olsun. Sağ taraftaki geliştirmelere ise ateş özellikleri ekle; örneğin daha fazla mermi ateş etmesi, daha hızlı ateş etmesi gibi özellikler ekle. Ayrıca karakterin sadece sola ve sağa gitmesini ayarlama, serbest bir şekilde geçiş yapma imkânı sağla. Karakteri ben kendim sürüklemek istiyorum.
Code edit (1 edits merged)
Please save this source code
User prompt
Corridor Runner
Initial prompt
Uzun bir koridor olsun ve bu koridorda 2 farklı yol bulunsun; sağ ve sol olarak ikiye ayrılmış olsun. Bu koridorların arasında ince bir duvar bulunsun. Soldaki koridordan sürekli düşman gelsin, sağdaki koridordan ise karakterimizi geliştirme özellikleri gelsin.
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 4; self.lastY = 0; self.update = function () { self.y += self.speed; }; return self; }); var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.health = 3; self.maxHealth = 3; self.speed = 5; self.isInLeftLane = true; self.isMoving = false; self.switchLane = function () { if (self.isMoving) return; self.isMoving = true; var targetX = self.isInLeftLane ? rightLaneX : leftLaneX; self.isInLeftLane = !self.isInLeftLane; tween(self, { x: targetX }, { duration: 200, easing: tween.easeOut, onFinish: function onFinish() { self.isMoving = false; } }); }; self.takeDamage = function () { self.health--; LK.effects.flashObject(self, 0xFF0000, 500); LK.getSound('damage').play(); if (self.health <= 0) { LK.showGameOver(); } }; self.heal = function () { if (self.health < self.maxHealth) { self.health++; } }; self.upgradeSpeed = function () { self.speed = Math.min(self.speed + 1, 10); }; return self; }); var PowerUp = Container.expand(function () { var self = Container.call(this); var powerupGraphics = self.attachAsset('powerup', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 3; self.lastY = 0; self.type = 'health'; // 'health', 'speed', 'score' self.update = function () { self.y += self.speed; self.rotation += 0.05; }; return self; }); var Upgrade = Container.expand(function () { var self = Container.call(this); var upgradeGraphics = self.attachAsset('upgrade', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 3; self.lastY = 0; self.type = 'speed'; // 'speed', 'health' self.update = function () { self.y += self.speed; self.rotation += 0.03; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x1a1a1a }); /**** * Game Code ****/ // Game dimensions and layout var leftLaneX = 2048 * 0.25; var rightLaneX = 2048 * 0.75; var wallX = 2048 * 0.5; // Create central wall var wall = game.addChild(LK.getAsset('wall', { anchorX: 0.5, anchorY: 0.5, x: wallX, y: 2732 / 2 })); // Create player var player = game.addChild(new Player()); player.x = leftLaneX; player.y = 2732 - 200; // Game arrays var enemies = []; var powerups = []; var upgrades = []; // Game variables var gameSpeed = 1; var distance = 0; var enemySpawnRate = 120; var powerupSpawnRate = 180; var upgradeSpawnRate = 300; // UI Elements var scoreText = new Text2('Score: 0', { size: 60, fill: 0xFFFFFF }); scoreText.anchor.set(0, 0); scoreText.x = 50; scoreText.y = 50; LK.gui.topLeft.addChild(scoreText); var healthText = new Text2('Health: 3', { size: 60, fill: 0xFF0000 }); healthText.anchor.set(1, 0); LK.gui.topRight.addChild(healthText); var distanceText = new Text2('Distance: 0', { size: 50, fill: 0x00FF00 }); distanceText.anchor.set(0.5, 0); LK.gui.top.addChild(distanceText); // Input handling game.down = function (x, y, obj) { player.switchLane(); }; // Main game loop game.update = function () { distance += gameSpeed; // Update game speed gameSpeed += 0.001; // Update score and UI LK.setScore(Math.floor(distance / 10)); scoreText.setText('Score: ' + LK.getScore()); healthText.setText('Health: ' + player.health); distanceText.setText('Distance: ' + Math.floor(distance)); // Spawn enemies in left lane if (LK.ticks % Math.max(30, enemySpawnRate - Math.floor(distance / 100)) == 0) { var enemy = new Enemy(); enemy.x = leftLaneX; enemy.y = -50; enemy.speed = 4 + gameSpeed; enemy.lastY = enemy.y; enemies.push(enemy); game.addChild(enemy); } // Spawn powerups in right lane if (LK.ticks % Math.max(60, powerupSpawnRate - Math.floor(distance / 50)) == 0) { var powerup = new PowerUp(); powerup.x = rightLaneX + (Math.random() - 0.5) * 100; powerup.y = -50; powerup.speed = 3 + gameSpeed; powerup.lastY = powerup.y; powerup.type = Math.random() < 0.7 ? 'health' : 'score'; powerups.push(powerup); game.addChild(powerup); } // Spawn upgrades in right lane if (LK.ticks % Math.max(120, upgradeSpawnRate - Math.floor(distance / 30)) == 0) { var upgrade = new Upgrade(); upgrade.x = rightLaneX + (Math.random() - 0.5) * 100; upgrade.y = -50; upgrade.speed = 3 + gameSpeed; upgrade.lastY = upgrade.y; upgrade.type = Math.random() < 0.5 ? 'speed' : 'health'; upgrades.push(upgrade); game.addChild(upgrade); } // Update and check enemies for (var i = enemies.length - 1; i >= 0; i--) { var enemy = enemies[i]; // Check if enemy went off screen if (enemy.lastY < 2732 + 50 && enemy.y >= 2732 + 50) { enemy.destroy(); enemies.splice(i, 1); continue; } // Check collision with player if (enemy.intersects(player) && player.isInLeftLane) { player.takeDamage(); enemy.destroy(); enemies.splice(i, 1); continue; } enemy.lastY = enemy.y; } // Update and check powerups for (var i = powerups.length - 1; i >= 0; i--) { var powerup = powerups[i]; // Check if powerup went off screen if (powerup.lastY < 2732 + 50 && powerup.y >= 2732 + 50) { powerup.destroy(); powerups.splice(i, 1); continue; } // Check collection by player if (powerup.intersects(player) && !player.isInLeftLane) { LK.getSound('collect').play(); if (powerup.type === 'health') { player.heal(); } else if (powerup.type === 'score') { LK.setScore(LK.getScore() + 10); } LK.effects.flashObject(powerup, 0xFFFFFF, 200); powerup.destroy(); powerups.splice(i, 1); continue; } powerup.lastY = powerup.y; } // Update and check upgrades for (var i = upgrades.length - 1; i >= 0; i--) { var upgrade = upgrades[i]; // Check if upgrade went off screen if (upgrade.lastY < 2732 + 50 && upgrade.y >= 2732 + 50) { upgrade.destroy(); upgrades.splice(i, 1); continue; } // Check collection by player if (upgrade.intersects(player) && !player.isInLeftLane) { LK.getSound('collect').play(); if (upgrade.type === 'speed') { player.upgradeSpeed(); } else if (upgrade.type === 'health') { player.maxHealth++; player.health = player.maxHealth; } LK.effects.flashObject(upgrade, 0x00FF00, 300); upgrade.destroy(); upgrades.splice(i, 1); continue; } upgrade.lastY = upgrade.y; } }; // Start background music LK.playMusic('background');
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,268 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var Enemy = Container.expand(function () {
+ var self = Container.call(this);
+ var enemyGraphics = self.attachAsset('enemy', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 4;
+ self.lastY = 0;
+ self.update = function () {
+ self.y += self.speed;
+ };
+ return self;
+});
+var Player = Container.expand(function () {
+ var self = Container.call(this);
+ var playerGraphics = self.attachAsset('player', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.health = 3;
+ self.maxHealth = 3;
+ self.speed = 5;
+ self.isInLeftLane = true;
+ self.isMoving = false;
+ self.switchLane = function () {
+ if (self.isMoving) return;
+ self.isMoving = true;
+ var targetX = self.isInLeftLane ? rightLaneX : leftLaneX;
+ self.isInLeftLane = !self.isInLeftLane;
+ tween(self, {
+ x: targetX
+ }, {
+ duration: 200,
+ easing: tween.easeOut,
+ onFinish: function onFinish() {
+ self.isMoving = false;
+ }
+ });
+ };
+ self.takeDamage = function () {
+ self.health--;
+ LK.effects.flashObject(self, 0xFF0000, 500);
+ LK.getSound('damage').play();
+ if (self.health <= 0) {
+ LK.showGameOver();
+ }
+ };
+ self.heal = function () {
+ if (self.health < self.maxHealth) {
+ self.health++;
+ }
+ };
+ self.upgradeSpeed = function () {
+ self.speed = Math.min(self.speed + 1, 10);
+ };
+ return self;
+});
+var PowerUp = Container.expand(function () {
+ var self = Container.call(this);
+ var powerupGraphics = self.attachAsset('powerup', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 3;
+ self.lastY = 0;
+ self.type = 'health'; // 'health', 'speed', 'score'
+ self.update = function () {
+ self.y += self.speed;
+ self.rotation += 0.05;
+ };
+ return self;
+});
+var Upgrade = Container.expand(function () {
+ var self = Container.call(this);
+ var upgradeGraphics = self.attachAsset('upgrade', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 3;
+ self.lastY = 0;
+ self.type = 'speed'; // 'speed', 'health'
+ self.update = function () {
+ self.y += self.speed;
+ self.rotation += 0.03;
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x1a1a1a
+});
+
+/****
+* Game Code
+****/
+// Game dimensions and layout
+var leftLaneX = 2048 * 0.25;
+var rightLaneX = 2048 * 0.75;
+var wallX = 2048 * 0.5;
+// Create central wall
+var wall = game.addChild(LK.getAsset('wall', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: wallX,
+ y: 2732 / 2
+}));
+// Create player
+var player = game.addChild(new Player());
+player.x = leftLaneX;
+player.y = 2732 - 200;
+// Game arrays
+var enemies = [];
+var powerups = [];
+var upgrades = [];
+// Game variables
+var gameSpeed = 1;
+var distance = 0;
+var enemySpawnRate = 120;
+var powerupSpawnRate = 180;
+var upgradeSpawnRate = 300;
+// UI Elements
+var scoreText = new Text2('Score: 0', {
+ size: 60,
+ fill: 0xFFFFFF
+});
+scoreText.anchor.set(0, 0);
+scoreText.x = 50;
+scoreText.y = 50;
+LK.gui.topLeft.addChild(scoreText);
+var healthText = new Text2('Health: 3', {
+ size: 60,
+ fill: 0xFF0000
+});
+healthText.anchor.set(1, 0);
+LK.gui.topRight.addChild(healthText);
+var distanceText = new Text2('Distance: 0', {
+ size: 50,
+ fill: 0x00FF00
+});
+distanceText.anchor.set(0.5, 0);
+LK.gui.top.addChild(distanceText);
+// Input handling
+game.down = function (x, y, obj) {
+ player.switchLane();
+};
+// Main game loop
+game.update = function () {
+ distance += gameSpeed;
+ // Update game speed
+ gameSpeed += 0.001;
+ // Update score and UI
+ LK.setScore(Math.floor(distance / 10));
+ scoreText.setText('Score: ' + LK.getScore());
+ healthText.setText('Health: ' + player.health);
+ distanceText.setText('Distance: ' + Math.floor(distance));
+ // Spawn enemies in left lane
+ if (LK.ticks % Math.max(30, enemySpawnRate - Math.floor(distance / 100)) == 0) {
+ var enemy = new Enemy();
+ enemy.x = leftLaneX;
+ enemy.y = -50;
+ enemy.speed = 4 + gameSpeed;
+ enemy.lastY = enemy.y;
+ enemies.push(enemy);
+ game.addChild(enemy);
+ }
+ // Spawn powerups in right lane
+ if (LK.ticks % Math.max(60, powerupSpawnRate - Math.floor(distance / 50)) == 0) {
+ var powerup = new PowerUp();
+ powerup.x = rightLaneX + (Math.random() - 0.5) * 100;
+ powerup.y = -50;
+ powerup.speed = 3 + gameSpeed;
+ powerup.lastY = powerup.y;
+ powerup.type = Math.random() < 0.7 ? 'health' : 'score';
+ powerups.push(powerup);
+ game.addChild(powerup);
+ }
+ // Spawn upgrades in right lane
+ if (LK.ticks % Math.max(120, upgradeSpawnRate - Math.floor(distance / 30)) == 0) {
+ var upgrade = new Upgrade();
+ upgrade.x = rightLaneX + (Math.random() - 0.5) * 100;
+ upgrade.y = -50;
+ upgrade.speed = 3 + gameSpeed;
+ upgrade.lastY = upgrade.y;
+ upgrade.type = Math.random() < 0.5 ? 'speed' : 'health';
+ upgrades.push(upgrade);
+ game.addChild(upgrade);
+ }
+ // Update and check enemies
+ for (var i = enemies.length - 1; i >= 0; i--) {
+ var enemy = enemies[i];
+ // Check if enemy went off screen
+ if (enemy.lastY < 2732 + 50 && enemy.y >= 2732 + 50) {
+ enemy.destroy();
+ enemies.splice(i, 1);
+ continue;
+ }
+ // Check collision with player
+ if (enemy.intersects(player) && player.isInLeftLane) {
+ player.takeDamage();
+ enemy.destroy();
+ enemies.splice(i, 1);
+ continue;
+ }
+ enemy.lastY = enemy.y;
+ }
+ // Update and check powerups
+ for (var i = powerups.length - 1; i >= 0; i--) {
+ var powerup = powerups[i];
+ // Check if powerup went off screen
+ if (powerup.lastY < 2732 + 50 && powerup.y >= 2732 + 50) {
+ powerup.destroy();
+ powerups.splice(i, 1);
+ continue;
+ }
+ // Check collection by player
+ if (powerup.intersects(player) && !player.isInLeftLane) {
+ LK.getSound('collect').play();
+ if (powerup.type === 'health') {
+ player.heal();
+ } else if (powerup.type === 'score') {
+ LK.setScore(LK.getScore() + 10);
+ }
+ LK.effects.flashObject(powerup, 0xFFFFFF, 200);
+ powerup.destroy();
+ powerups.splice(i, 1);
+ continue;
+ }
+ powerup.lastY = powerup.y;
+ }
+ // Update and check upgrades
+ for (var i = upgrades.length - 1; i >= 0; i--) {
+ var upgrade = upgrades[i];
+ // Check if upgrade went off screen
+ if (upgrade.lastY < 2732 + 50 && upgrade.y >= 2732 + 50) {
+ upgrade.destroy();
+ upgrades.splice(i, 1);
+ continue;
+ }
+ // Check collection by player
+ if (upgrade.intersects(player) && !player.isInLeftLane) {
+ LK.getSound('collect').play();
+ if (upgrade.type === 'speed') {
+ player.upgradeSpeed();
+ } else if (upgrade.type === 'health') {
+ player.maxHealth++;
+ player.health = player.maxHealth;
+ }
+ LK.effects.flashObject(upgrade, 0x00FF00, 300);
+ upgrade.destroy();
+ upgrades.splice(i, 1);
+ continue;
+ }
+ upgrade.lastY = upgrade.y;
+ }
+};
+// Start background music
+LK.playMusic('background');
\ No newline at end of file
Aşırı kızgın, hatta kafasından alevler çıkan, kübizm tarzında bir canavar çiz.. In-Game asset. 2d. High contrast. No shadows
kübizm tarzında düz bir mermi. In-Game asset. 2d. High contrast. No shadows
Aşırı kızgın, kübizm tarzında bir canavar çiz.. In-Game asset. 2d. High contrast. No shadows
Bir iyileşme efekti çiz kübizm tarzında. In-Game asset. 2d. High contrast. No shadows
Ortaçağ tarzında bir uzay gemisi çiz ve çizim tarzıda kübizm olsun. In-Game asset. 2d. High contrast. No shadows
Bir iyileşme efekti çiz sade olsun In-Game asset. 2d. High contrast. No shadows
saldırı hızını artışını gösteren bir çizim In-Game asset. 2d. High contrast. No shadows
hız artışını görselleştir ve mavi olsun In-Game asset. 2d. High contrast. No shadows
Birden fazla mermi, üzerinde + işareti olsun ve mavi olsun In-Game asset. 2d. High contrast. No shadows
Kaslı bir kol üstünde de + işareti olan bir çizim yap mavi olsun In-Game asset. 2d. High contrast. No shadows
Tekrar eden başlangıç ve son noktası aynı olan bir uzay arkaplan olarak yapmak istiyorum In-Game asset. 2d. High contrast.