/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Zombie = Container.expand(function () {
var self = Container.call(this);
var zombieGraphics = self.attachAsset('zombie', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 1.5;
self.lastPlayerDistance = Infinity;
self.update = function () {
// Calculate direction to player
var dx = player.x - self.x;
var dy = player.y - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
// Normalize direction and apply speed
if (distance > 0) {
self.x += dx / distance * self.speed;
self.y += dy / distance * self.speed;
}
// Check for near miss (was far, now close)
if (self.lastPlayerDistance > 150 && distance <= 150) {
LK.setScore(LK.getScore() + 10);
LK.getSound('nearMiss').play();
updateScoreDisplay();
}
self.lastPlayerDistance = distance;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x2F2F2F
});
/****
* Game Code
****/
var player;
var zombies = [];
var dragNode = null;
var gameStartTime = Date.now();
var lastZombieSpawn = 0;
var zombieSpawnRate = 2000; // milliseconds
var difficultyTimer = 0;
// Create score display
var scoreTxt = new Text2('Score: 0', {
size: 80,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Create survival time display
var timeTxt = new Text2('Time: 0s', {
size: 60,
fill: 0xFFFFFF
});
timeTxt.anchor.set(0, 0);
timeTxt.x = 120;
timeTxt.y = 120;
LK.gui.topLeft.addChild(timeTxt);
// Create player
player = game.addChild(new Container());
var playerGraphics = player.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
// Position player at center
player.x = 2048 / 2;
player.y = 2732 / 2;
function updateScoreDisplay() {
scoreTxt.setText('Score: ' + LK.getScore());
}
function spawnZombie() {
var zombie = new Zombie();
// Spawn zombie at random edge of screen
var edge = Math.floor(Math.random() * 4);
switch (edge) {
case 0:
// Top
zombie.x = Math.random() * 2048;
zombie.y = -50;
break;
case 1:
// Right
zombie.x = 2048 + 50;
zombie.y = Math.random() * 2732;
break;
case 2:
// Bottom
zombie.x = Math.random() * 2048;
zombie.y = 2732 + 50;
break;
case 3:
// Left
zombie.x = -50;
zombie.y = Math.random() * 2732;
break;
}
zombies.push(zombie);
game.addChild(zombie);
}
function handleMove(x, y, obj) {
if (dragNode) {
// Keep player within screen bounds
dragNode.x = Math.max(40, Math.min(2048 - 40, x));
dragNode.y = Math.max(40, Math.min(2732 - 40, y));
}
}
game.move = handleMove;
game.down = function (x, y, obj) {
dragNode = player;
handleMove(x, y, obj);
};
game.up = function (x, y, obj) {
dragNode = null;
};
game.update = function () {
var currentTime = Date.now();
var survivalTime = Math.floor((currentTime - gameStartTime) / 1000);
// Update survival time display
timeTxt.setText('Time: ' + survivalTime + 's');
// Update score based on survival time
LK.setScore(survivalTime * 5);
updateScoreDisplay();
// Increase difficulty over time
difficultyTimer++;
if (difficultyTimer % 1800 == 0) {
// Every 30 seconds (1800 frames)
zombieSpawnRate = Math.max(500, zombieSpawnRate - 200);
// Increase zombie speed
for (var i = 0; i < zombies.length; i++) {
zombies[i].speed += 0.3;
}
}
// Spawn zombies
if (currentTime - lastZombieSpawn > zombieSpawnRate) {
spawnZombie();
lastZombieSpawn = currentTime;
}
// Check collisions and update zombies
for (var i = zombies.length - 1; i >= 0; i--) {
var zombie = zombies[i];
// Check if zombie caught player
if (zombie.intersects(player)) {
LK.getSound('zombieHit').play();
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
return;
}
// Remove zombies that are too far off screen
var distanceFromCenter = Math.sqrt(Math.pow(zombie.x - 1024, 2) + Math.pow(zombie.y - 1366, 2));
if (distanceFromCenter > 3000) {
zombie.destroy();
zombies.splice(i, 1);
}
}
// Spawn initial zombie
if (LK.ticks == 120) {
// 2 seconds after game start
spawnZombie();
lastZombieSpawn = currentTime;
}
}; ===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,173 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var Zombie = Container.expand(function () {
+ var self = Container.call(this);
+ var zombieGraphics = self.attachAsset('zombie', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 1.5;
+ self.lastPlayerDistance = Infinity;
+ self.update = function () {
+ // Calculate direction to player
+ var dx = player.x - self.x;
+ var dy = player.y - self.y;
+ var distance = Math.sqrt(dx * dx + dy * dy);
+ // Normalize direction and apply speed
+ if (distance > 0) {
+ self.x += dx / distance * self.speed;
+ self.y += dy / distance * self.speed;
+ }
+ // Check for near miss (was far, now close)
+ if (self.lastPlayerDistance > 150 && distance <= 150) {
+ LK.setScore(LK.getScore() + 10);
+ LK.getSound('nearMiss').play();
+ updateScoreDisplay();
+ }
+ self.lastPlayerDistance = distance;
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x2F2F2F
+});
+
+/****
+* Game Code
+****/
+var player;
+var zombies = [];
+var dragNode = null;
+var gameStartTime = Date.now();
+var lastZombieSpawn = 0;
+var zombieSpawnRate = 2000; // milliseconds
+var difficultyTimer = 0;
+// Create score display
+var scoreTxt = new Text2('Score: 0', {
+ size: 80,
+ fill: 0xFFFFFF
+});
+scoreTxt.anchor.set(0.5, 0);
+LK.gui.top.addChild(scoreTxt);
+// Create survival time display
+var timeTxt = new Text2('Time: 0s', {
+ size: 60,
+ fill: 0xFFFFFF
+});
+timeTxt.anchor.set(0, 0);
+timeTxt.x = 120;
+timeTxt.y = 120;
+LK.gui.topLeft.addChild(timeTxt);
+// Create player
+player = game.addChild(new Container());
+var playerGraphics = player.attachAsset('player', {
+ anchorX: 0.5,
+ anchorY: 0.5
+});
+// Position player at center
+player.x = 2048 / 2;
+player.y = 2732 / 2;
+function updateScoreDisplay() {
+ scoreTxt.setText('Score: ' + LK.getScore());
+}
+function spawnZombie() {
+ var zombie = new Zombie();
+ // Spawn zombie at random edge of screen
+ var edge = Math.floor(Math.random() * 4);
+ switch (edge) {
+ case 0:
+ // Top
+ zombie.x = Math.random() * 2048;
+ zombie.y = -50;
+ break;
+ case 1:
+ // Right
+ zombie.x = 2048 + 50;
+ zombie.y = Math.random() * 2732;
+ break;
+ case 2:
+ // Bottom
+ zombie.x = Math.random() * 2048;
+ zombie.y = 2732 + 50;
+ break;
+ case 3:
+ // Left
+ zombie.x = -50;
+ zombie.y = Math.random() * 2732;
+ break;
+ }
+ zombies.push(zombie);
+ game.addChild(zombie);
+}
+function handleMove(x, y, obj) {
+ if (dragNode) {
+ // Keep player within screen bounds
+ dragNode.x = Math.max(40, Math.min(2048 - 40, x));
+ dragNode.y = Math.max(40, Math.min(2732 - 40, y));
+ }
+}
+game.move = handleMove;
+game.down = function (x, y, obj) {
+ dragNode = player;
+ handleMove(x, y, obj);
+};
+game.up = function (x, y, obj) {
+ dragNode = null;
+};
+game.update = function () {
+ var currentTime = Date.now();
+ var survivalTime = Math.floor((currentTime - gameStartTime) / 1000);
+ // Update survival time display
+ timeTxt.setText('Time: ' + survivalTime + 's');
+ // Update score based on survival time
+ LK.setScore(survivalTime * 5);
+ updateScoreDisplay();
+ // Increase difficulty over time
+ difficultyTimer++;
+ if (difficultyTimer % 1800 == 0) {
+ // Every 30 seconds (1800 frames)
+ zombieSpawnRate = Math.max(500, zombieSpawnRate - 200);
+ // Increase zombie speed
+ for (var i = 0; i < zombies.length; i++) {
+ zombies[i].speed += 0.3;
+ }
+ }
+ // Spawn zombies
+ if (currentTime - lastZombieSpawn > zombieSpawnRate) {
+ spawnZombie();
+ lastZombieSpawn = currentTime;
+ }
+ // Check collisions and update zombies
+ for (var i = zombies.length - 1; i >= 0; i--) {
+ var zombie = zombies[i];
+ // Check if zombie caught player
+ if (zombie.intersects(player)) {
+ LK.getSound('zombieHit').play();
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.showGameOver();
+ return;
+ }
+ // Remove zombies that are too far off screen
+ var distanceFromCenter = Math.sqrt(Math.pow(zombie.x - 1024, 2) + Math.pow(zombie.y - 1366, 2));
+ if (distanceFromCenter > 3000) {
+ zombie.destroy();
+ zombies.splice(i, 1);
+ }
+ }
+ // Spawn initial zombie
+ if (LK.ticks == 120) {
+ // 2 seconds after game start
+ spawnZombie();
+ lastZombieSpawn = currentTime;
+ }
+};
\ No newline at end of file
bir adam elinde silah olsun ve asker gibi giyinsin. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
bu bir mermi . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
bu bir zombi ağızında salyalar olsun ve üstü başı dağınık olsun kirli olsun ve boydan olsun . In-Game asset. 2d. High contrast. No shadows
bana büyük bir zombi yap ama yine ağızında salyalar olsun dağınık olsun ve güçlü dursun. In-Game asset. 2d. High contrast. No shadows
bana füze çiz ucu aşağı baksın. In-Game asset. 2d. High contrast. No shadows