User prompt
kule imlecin gittiği yöne dönsün. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
zombie çeşidi 6 olsun.
User prompt
alev oku isabet edince duman ve alev patlaması olsun. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
alev oku isabetlerinde patlama sesi olsun.
User prompt
ekrana dokunmadan ateş etmesin.
User prompt
üzerine dokunduğumuz düşmana ateş etsin .
User prompt
silahımızı ortadaki kuleye yerleştir.
User prompt
mermi hızını artır 3 kat
User prompt
kule ateşetsin
User prompt
silah menzilini 10 kat artır.
User prompt
kule silah menzilimizi 10 kat artır.
User prompt
Ekranda dokunduğumuz yere doğru silah kulemizden mermi atılsın..
User prompt
silahımız gelen zombilere, ekranda dokunduğumuz yere ateş etsin.
User prompt
6 tür zombi gelsin.
User prompt
Zombiler 6 çeşit olsun.
User prompt
100 bölüm oyun olsun.Her bölüm 5 dalga olsun .Her bölümde düşmanlarımız değişsin.
User prompt
silahımız dokunduğumuz düşmana dönsün. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
zoom iptal et
User prompt
Düşman kulemize yaklaştıkça silahımızın gücü artsın.
User prompt
silah kulemiz gelen düşmanlara dokundukça ateş etsin.
User prompt
uzaktan üzerimize gelen zombiler olsun.
User prompt
düşmanlar ekranın üstünden yürüyerek gelsin. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
karşımızda düşman olsun.Ekranın ortasından uzaklardan çıkarak silah kulemize doğru gelsin. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
silahımızın artı şeklinde hareket eden bir artıkıl ı olsun. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
zoom kaldır
/****
* 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: 1.0
});
self.isAlive = true;
self.lastX = 0;
self.lastY = 0;
self.moveTowardsCenter = function () {
if (!self.isAlive) return;
var centerX = 2048 / 2;
var centerY = 2732 / 2;
var duration = 8000 + Math.random() * 4000; // 8-12 seconds
tween(self, {
x: centerX,
y: centerY
}, {
duration: duration,
easing: tween.linear,
onFinish: function onFinish() {
if (self.isAlive) {
// Enemy reached the center - game over
LK.showGameOver();
}
}
});
};
self.die = function () {
if (!self.isAlive) return;
self.isAlive = false;
tween.stop(self, {
x: true,
y: true
});
// Create hit marker
var hitMarker = LK.getAsset('hitMarker', {
anchorX: 0.5,
anchorY: 0.5,
x: self.x,
y: self.y - 60
});
game.addChild(hitMarker);
// Fade out hit marker
tween(hitMarker, {
alpha: 0
}, {
duration: 1000,
onFinish: function onFinish() {
hitMarker.destroy();
}
});
// Remove enemy
self.destroy();
};
return self;
});
var SniperScope = Container.expand(function () {
var self = Container.call(this);
var scopeGraphics = self.attachAsset('scope', {
anchorX: 0.5,
anchorY: 0.5
});
var crosshair = self.attachAsset('crosshair', {
anchorX: 0.5,
anchorY: 0.5
});
self.zoomLevel = 1;
self.maxZoom = 3;
self.minZoom = 0.5;
self.zoom = function (direction) {
var newZoom = self.zoomLevel + direction * 0.5;
newZoom = Math.max(self.minZoom, Math.min(self.maxZoom, newZoom));
if (newZoom !== self.zoomLevel) {
self.zoomLevel = newZoom;
tween(self, {
scaleX: self.zoomLevel,
scaleY: self.zoomLevel
}, {
duration: 300,
easing: tween.easeOut
});
}
};
return self;
});
/****
* Initialize Game
****/
// Create battlefield background
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
// Create battlefield background
var background = game.addChild(LK.getAsset('background', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 / 2,
y: 2732 / 2
}));
// Create sniper scope
var scope = game.addChild(new SniperScope());
scope.x = 2048 / 2;
scope.y = 2732 / 2;
// Enemy management
var enemies = [];
var enemySpawnTimer = 0;
var enemySpawnInterval = 3000; // Spawn every 3 seconds
// Score display
var scoreTxt = new Text2('Score: 0', {
size: 80,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Zoom controls text
var zoomTxt = new Text2('Tap to zoom in/out', {
size: 60,
fill: 0xFFFFFF
});
zoomTxt.anchor.set(0.5, 1);
LK.gui.bottom.addChild(zoomTxt);
function spawnEnemy() {
var enemy = new Enemy();
// Spawn from random edge of screen, far from center
var spawnSide = Math.floor(Math.random() * 4);
var centerX = 2048 / 2;
var centerY = 2732 / 2;
switch (spawnSide) {
case 0:
// Top
enemy.x = Math.random() * 2048;
enemy.y = 0;
break;
case 1:
// Right
enemy.x = 2048;
enemy.y = Math.random() * 2732;
break;
case 2:
// Bottom
enemy.x = Math.random() * 2048;
enemy.y = 2732;
break;
case 3:
// Left
enemy.x = 0;
enemy.y = Math.random() * 2732;
break;
}
enemy.lastX = enemy.x;
enemy.lastY = enemy.y;
game.addChild(enemy);
enemies.push(enemy);
// Start moving towards center
enemy.moveTowardsCenter();
}
// Touch controls
game.down = function (x, y, obj) {
// Check if we hit an enemy
for (var i = enemies.length - 1; i >= 0; i--) {
var enemy = enemies[i];
if (enemy.isAlive) {
var distance = Math.sqrt(Math.pow(x - enemy.x, 2) + Math.pow(y - enemy.y, 2));
if (distance < 50) {
// Hit radius
enemy.die();
enemies.splice(i, 1);
LK.setScore(LK.getScore() + 10);
scoreTxt.setText('Score: ' + LK.getScore());
return;
}
}
}
// If no enemy hit, zoom in
scope.zoom(1);
};
game.up = function (x, y, obj) {
// Zoom out on release
scope.zoom(-1);
};
game.update = function () {
// Spawn enemies periodically
enemySpawnTimer += 16; // Approximately 60 FPS
if (enemySpawnTimer >= enemySpawnInterval) {
spawnEnemy();
enemySpawnTimer = 0;
// Gradually increase spawn rate
if (enemySpawnInterval > 1000) {
enemySpawnInterval -= 50;
}
}
// Clean up destroyed enemies
for (var i = enemies.length - 1; i >= 0; i--) {
var enemy = enemies[i];
if (!enemy.isAlive || !enemy.parent) {
enemies.splice(i, 1);
}
}
}; ===================================================================
--- original.js
+++ change.js
@@ -5,81 +5,209 @@
/****
* Classes
****/
-var Crosshair = Container.expand(function () {
+var Enemy = Container.expand(function () {
var self = Container.call(this);
- var crosshairGraphics = self.attachAsset('crosshair', {
+ var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
- anchorY: 0.5
+ anchorY: 1.0
});
- // Set initial position
- self.centerX = 1024;
- self.centerY = 1366;
- self.x = self.centerX;
- self.y = self.centerY;
- // Movement distance for plus pattern
- self.moveDistance = 50;
- // Start the plus-shaped movement pattern
- self.startPlusMovement = function () {
- self.moveToPlusPosition(0);
- };
- // Move to different positions in plus pattern (0=center, 1=right, 2=up, 3=left, 4=down)
- self.moveToPlusPosition = function (position) {
- var targetX = self.centerX;
- var targetY = self.centerY;
- switch (position) {
- case 0:
- // Center
- targetX = self.centerX;
- targetY = self.centerY;
- break;
- case 1:
- // Right
- targetX = self.centerX + self.moveDistance;
- targetY = self.centerY;
- break;
- case 2:
- // Up
- targetX = self.centerX;
- targetY = self.centerY - self.moveDistance;
- break;
- case 3:
- // Left
- targetX = self.centerX - self.moveDistance;
- targetY = self.centerY;
- break;
- case 4:
- // Down
- targetX = self.centerX;
- targetY = self.centerY + self.moveDistance;
- break;
- }
+ self.isAlive = true;
+ self.lastX = 0;
+ self.lastY = 0;
+ self.moveTowardsCenter = function () {
+ if (!self.isAlive) return;
+ var centerX = 2048 / 2;
+ var centerY = 2732 / 2;
+ var duration = 8000 + Math.random() * 4000; // 8-12 seconds
tween(self, {
- x: targetX,
- y: targetY
+ x: centerX,
+ y: centerY
}, {
- duration: 800,
- easing: tween.easeInOut,
+ duration: duration,
+ easing: tween.linear,
onFinish: function onFinish() {
- var nextPosition = (position + 1) % 5;
- self.moveToPlusPosition(nextPosition);
+ if (self.isAlive) {
+ // Enemy reached the center - game over
+ LK.showGameOver();
+ }
}
});
};
+ self.die = function () {
+ if (!self.isAlive) return;
+ self.isAlive = false;
+ tween.stop(self, {
+ x: true,
+ y: true
+ });
+ // Create hit marker
+ var hitMarker = LK.getAsset('hitMarker', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: self.x,
+ y: self.y - 60
+ });
+ game.addChild(hitMarker);
+ // Fade out hit marker
+ tween(hitMarker, {
+ alpha: 0
+ }, {
+ duration: 1000,
+ onFinish: function onFinish() {
+ hitMarker.destroy();
+ }
+ });
+ // Remove enemy
+ self.destroy();
+ };
return self;
});
+var SniperScope = Container.expand(function () {
+ var self = Container.call(this);
+ var scopeGraphics = self.attachAsset('scope', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var crosshair = self.attachAsset('crosshair', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.zoomLevel = 1;
+ self.maxZoom = 3;
+ self.minZoom = 0.5;
+ self.zoom = function (direction) {
+ var newZoom = self.zoomLevel + direction * 0.5;
+ newZoom = Math.max(self.minZoom, Math.min(self.maxZoom, newZoom));
+ if (newZoom !== self.zoomLevel) {
+ self.zoomLevel = newZoom;
+ tween(self, {
+ scaleX: self.zoomLevel,
+ scaleY: self.zoomLevel
+ }, {
+ duration: 300,
+ easing: tween.easeOut
+ });
+ }
+ };
+ return self;
+});
/****
* Initialize Game
****/
-// Create crosshair with plus-shaped movement
+// Create battlefield background
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
-// Create crosshair with plus-shaped movement
-var crosshair = game.addChild(new Crosshair());
-crosshair.startPlusMovement();
\ No newline at end of file
+// Create battlefield background
+var background = game.addChild(LK.getAsset('background', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 2048 / 2,
+ y: 2732 / 2
+}));
+// Create sniper scope
+var scope = game.addChild(new SniperScope());
+scope.x = 2048 / 2;
+scope.y = 2732 / 2;
+// Enemy management
+var enemies = [];
+var enemySpawnTimer = 0;
+var enemySpawnInterval = 3000; // Spawn every 3 seconds
+// Score display
+var scoreTxt = new Text2('Score: 0', {
+ size: 80,
+ fill: 0xFFFFFF
+});
+scoreTxt.anchor.set(0.5, 0);
+LK.gui.top.addChild(scoreTxt);
+// Zoom controls text
+var zoomTxt = new Text2('Tap to zoom in/out', {
+ size: 60,
+ fill: 0xFFFFFF
+});
+zoomTxt.anchor.set(0.5, 1);
+LK.gui.bottom.addChild(zoomTxt);
+function spawnEnemy() {
+ var enemy = new Enemy();
+ // Spawn from random edge of screen, far from center
+ var spawnSide = Math.floor(Math.random() * 4);
+ var centerX = 2048 / 2;
+ var centerY = 2732 / 2;
+ switch (spawnSide) {
+ case 0:
+ // Top
+ enemy.x = Math.random() * 2048;
+ enemy.y = 0;
+ break;
+ case 1:
+ // Right
+ enemy.x = 2048;
+ enemy.y = Math.random() * 2732;
+ break;
+ case 2:
+ // Bottom
+ enemy.x = Math.random() * 2048;
+ enemy.y = 2732;
+ break;
+ case 3:
+ // Left
+ enemy.x = 0;
+ enemy.y = Math.random() * 2732;
+ break;
+ }
+ enemy.lastX = enemy.x;
+ enemy.lastY = enemy.y;
+ game.addChild(enemy);
+ enemies.push(enemy);
+ // Start moving towards center
+ enemy.moveTowardsCenter();
+}
+// Touch controls
+game.down = function (x, y, obj) {
+ // Check if we hit an enemy
+ for (var i = enemies.length - 1; i >= 0; i--) {
+ var enemy = enemies[i];
+ if (enemy.isAlive) {
+ var distance = Math.sqrt(Math.pow(x - enemy.x, 2) + Math.pow(y - enemy.y, 2));
+ if (distance < 50) {
+ // Hit radius
+ enemy.die();
+ enemies.splice(i, 1);
+ LK.setScore(LK.getScore() + 10);
+ scoreTxt.setText('Score: ' + LK.getScore());
+ return;
+ }
+ }
+ }
+ // If no enemy hit, zoom in
+ scope.zoom(1);
+};
+game.up = function (x, y, obj) {
+ // Zoom out on release
+ scope.zoom(-1);
+};
+game.update = function () {
+ // Spawn enemies periodically
+ enemySpawnTimer += 16; // Approximately 60 FPS
+ if (enemySpawnTimer >= enemySpawnInterval) {
+ spawnEnemy();
+ enemySpawnTimer = 0;
+ // Gradually increase spawn rate
+ if (enemySpawnInterval > 1000) {
+ enemySpawnInterval -= 50;
+ }
+ }
+ // Clean up destroyed enemies
+ for (var i = enemies.length - 1; i >= 0; i--) {
+ var enemy = enemies[i];
+ if (!enemy.isAlive || !enemy.parent) {
+ enemies.splice(i, 1);
+ }
+ }
+};
\ No newline at end of file
hareketli silah. In-Game asset. 2d. High contrast. No shadows
duman. In-Game asset. 2d. High contrast. No shadows
zombie. In-Game asset. 2d. High contrast. No shadows
dinazor. In-Game asset. 2d. High contrast. No shadows
kuş bakışı silahlı kule.. In-Game asset. 2d. High contrast. No shadows
dairesel mevzi.. In-Game asset. 2d. High contrast. No shadows
roket namlusu kuş bakışı ,üstten görünüm.. In-Game asset. 2d. High contrast. No shadows
patlama efekti alev duman. In-Game asset. 2d. High contrast. No shadows