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