User prompt
Arka plan siyah olsun
User prompt
Spidermam karakteri haraket ettirmek için parmağınızı herhangi bir yere dokununca karakter dokundumyz yere gitsin
Code edit (1 edits merged)
Please save this source code
User prompt
Spider-Man Web Swinging Combat
Initial prompt
Spiderman game karakter yukarı ağını atsın ve ona tutunarak ileri doğru atılsın ve etrafta düşmanlar lsun silahları olsun bize ateş etsin silahlı askerlerin canı 100 olcak bizin spiderman karakterin canı 200 olcak spiderman ağ atmak için ekranın sağ orta turunda spider yazsın ona basınca spiderman elinde ağ fırlatsın ve karşısındaki düşmana 50 asar ver
/**** * 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.health = 100; self.maxHealth = 100; self.shootCooldown = 0; self.shootDelay = 90; // 1.5 seconds at 60fps self.update = function () { // Look towards Spider-Man var dx = spiderMan.x - self.x; var dy = spiderMan.y - self.y; var angle = Math.atan2(dy, dx); enemyGraphics.rotation = angle; // Shooting behavior self.shootCooldown--; if (self.shootCooldown <= 0) { self.shoot(); self.shootCooldown = self.shootDelay + Math.random() * 60; // Add randomness } }; self.shoot = function () { var bullet = new EnemyBullet(); bullet.x = self.x; bullet.y = self.y; var dx = spiderMan.x - self.x; var dy = spiderMan.y - self.y; var distance = Math.sqrt(dx * dx + dy * dy); bullet.velocityX = dx / distance * 6; bullet.velocityY = dy / distance * 6; enemyBullets.push(bullet); game.addChild(bullet); }; self.takeDamage = function (damage) { self.health -= damage; LK.effects.flashObject(self, 0xffffff, 200); LK.getSound('enemyHit').play(); if (self.health <= 0) { self.destroy(); return true; // Enemy died } return false; }; return self; }); var EnemyBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('enemyBullet', { anchorX: 0.5, anchorY: 0.5 }); self.damage = 25; self.velocityX = 0; self.velocityY = 0; self.update = function () { self.x += self.velocityX; self.y += self.velocityY; // Check bounds if (self.x < -50 || self.x > 2098 || self.y < -50 || self.y > 2782) { self.destroy(); } }; return self; }); var SpiderMan = Container.expand(function () { var self = Container.call(this); var spiderGraphics = self.attachAsset('spiderMan', { anchorX: 0.5, anchorY: 0.5 }); self.health = 200; self.maxHealth = 200; self.speed = 8; self.isSwinging = false; self.swingAnchor = null; self.swingRadius = 0; self.swingAngle = 0; self.velocityX = 0; self.velocityY = 0; self.webLine = null; self.update = function () { if (self.isSwinging && self.swingAnchor) { // Web swinging physics var dx = self.x - self.swingAnchor.x; var dy = self.y - self.swingAnchor.y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance > self.swingRadius) { // Constrain to swing radius var angle = Math.atan2(dy, dx); self.x = self.swingAnchor.x + Math.cos(angle) * self.swingRadius; self.y = self.swingAnchor.y + Math.sin(angle) * self.swingRadius; // Apply swing momentum self.velocityX += Math.cos(angle + Math.PI / 2) * 0.3; self.velocityY += 2; // Gravity } // Update web line position if (self.webLine) { self.webLine.x = (self.x + self.swingAnchor.x) / 2; self.webLine.y = (self.y + self.swingAnchor.y) / 2; var lineAngle = Math.atan2(self.swingAnchor.y - self.y, self.swingAnchor.x - self.x); self.webLine.rotation = lineAngle + Math.PI / 2; self.webLine.height = Math.sqrt(dx * dx + dy * dy); } } else { // Free fall physics self.velocityY += 0.5; // Gravity self.x += self.velocityX; self.y += self.velocityY; // Air resistance self.velocityX *= 0.98; self.velocityY *= 0.99; } // Keep Spider-Man on screen if (self.x < 40) { self.x = 40; self.velocityX = 0; } if (self.x > 2008) { self.x = 2008; self.velocityX = 0; } if (self.y > 2600) { self.y = 2600; self.velocityY = 0; } if (self.y < 40) { self.y = 40; self.velocityY = 0; } }; self.takeDamage = function (damage) { self.health -= damage; LK.effects.flashObject(self, 0xff0000, 300); LK.getSound('playerHit').play(); if (self.health <= 0) { LK.showGameOver(); } }; self.startSwinging = function (attachPoint) { self.isSwinging = true; self.swingAnchor = attachPoint; var dx = self.x - attachPoint.x; var dy = self.y - attachPoint.y; self.swingRadius = Math.sqrt(dx * dx + dy * dy); // Create web line self.webLine = game.addChild(LK.getAsset('webLine', { anchorX: 0.5, anchorY: 0 })); }; self.stopSwinging = function () { self.isSwinging = false; self.swingAnchor = null; if (self.webLine) { self.webLine.destroy(); self.webLine = null; } }; return self; }); var WebProjectile = Container.expand(function () { var self = Container.call(this); var webGraphics = self.attachAsset('webProjectile', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 12; self.damage = 50; self.velocityX = 0; self.velocityY = 0; self.update = function () { self.x += self.velocityX; self.y += self.velocityY; // Check bounds if (self.x < -50 || self.x > 2098 || self.y < -50 || self.y > 2782) { self.destroy(); } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ // Game variables var spiderMan; var enemies = []; var webProjectiles = []; var enemyBullets = []; var attachPoints = []; var spiderButton; var healthBar; var waveNumber = 1; var enemiesDefeated = 0; var spawnTimer = 0; // Create Spider-Man spiderMan = game.addChild(new SpiderMan()); spiderMan.x = 1024; spiderMan.y = 1800; // Create attachment points for web swinging for (var i = 0; i < 8; i++) { var attachPoint = game.addChild(LK.getAsset('attachPoint', { anchorX: 0.5, anchorY: 0.5 })); attachPoint.x = 200 + i * 250; attachPoint.y = 200 + Math.random() * 300; attachPoints.push(attachPoint); } // Create Spider button spiderButton = LK.gui.right.addChild(new Text2('SPIDER', { size: 60, fill: 0xFF0000 })); spiderButton.anchor.set(0.5, 0.5); spiderButton.x = -150; // Create health display healthBar = LK.gui.topLeft.addChild(new Text2('Health: 200', { size: 50, fill: 0xFFFFFF })); healthBar.x = 150; healthBar.y = 50; // Spawn initial enemies function spawnEnemies(count) { for (var i = 0; i < count; i++) { var enemy = new Enemy(); enemy.x = Math.random() * 1800 + 100; enemy.y = Math.random() * 400 + 300; enemies.push(enemy); game.addChild(enemy); } } spawnEnemies(3); // Touch handlers spiderButton.down = function (x, y, obj) { // Shoot web projectile var webShot = new WebProjectile(); webShot.x = spiderMan.x; webShot.y = spiderMan.y; // Find nearest enemy var nearestEnemy = null; var nearestDistance = Infinity; for (var i = 0; i < enemies.length; i++) { var enemy = enemies[i]; var dx = enemy.x - spiderMan.x; var dy = enemy.y - spiderMan.y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance < nearestDistance) { nearestDistance = distance; nearestEnemy = enemy; } } if (nearestEnemy) { var dx = nearestEnemy.x - spiderMan.x; var dy = nearestEnemy.y - spiderMan.y; var distance = Math.sqrt(dx * dx + dy * dy); webShot.velocityX = dx / distance * webShot.speed; webShot.velocityY = dy / distance * webShot.speed; } else { webShot.velocityY = -webShot.speed; } webProjectiles.push(webShot); game.addChild(webShot); LK.getSound('webShoot').play(); }; game.down = function (x, y, obj) { // Move Spider-Man to touched location spiderMan.x = x; spiderMan.y = y; // Stop any current swinging spiderMan.stopSwinging(); }; game.up = function (x, y, obj) { // No longer needed for direct movement }; // Main game loop game.update = function () { // Update health display healthBar.setText('Health: ' + spiderMan.health); // Handle web projectile collisions for (var i = webProjectiles.length - 1; i >= 0; i--) { var web = webProjectiles[i]; var webHit = false; for (var j = enemies.length - 1; j >= 0; j--) { var enemy = enemies[j]; if (web.intersects(enemy)) { if (enemy.takeDamage(web.damage)) { // Enemy died enemies.splice(j, 1); enemiesDefeated++; LK.setScore(LK.getScore() + 100); } web.destroy(); webProjectiles.splice(i, 1); webHit = true; break; } } } // Handle enemy bullet collisions for (var i = enemyBullets.length - 1; i >= 0; i--) { var bullet = enemyBullets[i]; if (bullet.intersects(spiderMan)) { spiderMan.takeDamage(bullet.damage); bullet.destroy(); enemyBullets.splice(i, 1); } } // Remove destroyed objects from arrays webProjectiles = webProjectiles.filter(function (web) { return web.parent !== null; }); enemyBullets = enemyBullets.filter(function (bullet) { return bullet.parent !== null; }); // Spawn new wave when all enemies defeated if (enemies.length === 0) { spawnTimer++; if (spawnTimer > 180) { // 3 seconds waveNumber++; spawnEnemies(Math.min(2 + waveNumber, 6)); spawnTimer = 0; } } // Win condition if (enemiesDefeated >= 20) { LK.showYouWin(); } };
===================================================================
--- original.js
+++ change.js
@@ -192,9 +192,9 @@
/****
* Initialize Game
****/
var game = new LK.Game({
- backgroundColor: 0x87CEEB
+ backgroundColor: 0x000000
});
/****
* Game Code