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
/****
* Classes
****/
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 1.0
});
// Movement properties
self.speed = 1 + Math.random() * 2;
self.direction = (Math.random() - 0.5) * 2;
self.changeDirectionTimer = 0;
self.lastX = 0;
self.lastY = 0;
self.update = function () {
// Store last position for collision detection
self.lastX = self.x;
self.lastY = self.y;
// Change direction randomly
self.changeDirectionTimer++;
if (self.changeDirectionTimer > 180) {
// Change direction every 3 seconds
self.direction = (Math.random() - 0.5) * 2;
self.changeDirectionTimer = 0;
}
// Move horizontally
self.x += self.direction * self.speed;
// Keep within battlefield bounds
if (self.x < 200) {
self.x = 200;
self.direction = Math.abs(self.direction);
}
if (self.x > 3800) {
self.x = 3800;
self.direction = -Math.abs(self.direction);
}
};
return self;
});
var HitMarker = Container.expand(function () {
var self = Container.call(this);
var markerGraphics = self.attachAsset('hitMarker', {
anchorX: 0.5,
anchorY: 0.5
});
self.timer = 0;
self.lifetime = 60; // 1 second at 60fps
self.update = function () {
self.timer++;
// Fade out over time
markerGraphics.alpha = 1 - self.timer / self.lifetime;
if (self.timer >= self.lifetime) {
self.destroy();
}
};
return self;
});
// Game variables
var Scope = Container.expand(function () {
var self = Container.call(this);
// Create scope background
var scopeGraphics = self.attachAsset('scope', {
anchorX: 0.5,
anchorY: 0.5
});
// Create crosshair lines
var crosshairV = self.attachAsset('crosshair', {
anchorX: 0.5,
anchorY: 0.5
});
var crosshairH = self.attachAsset('crosshair', {
anchorX: 0.5,
anchorY: 0.5,
rotation: Math.PI / 2
});
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
// Game variables
var enemies = [];
var hitMarkers = [];
var scope;
var battlefield;
var cameraX = 0;
var cameraY = 0;
var targetCameraX = 0;
var targetCameraY = 0;
var score = 0;
// Create battlefield background
battlefield = game.addChild(LK.getAsset('background', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048,
y: 2048
}));
// Create scope overlay
scope = LK.gui.center.addChild(new Scope());
scope.x = 0;
scope.y = 0;
// Create score display
var scoreTxt = new Text2('Score: 0', {
size: 60,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
scoreTxt.y = 100;
// Spawn initial enemies
for (var i = 0; i < 5; i++) {
var enemy = new Enemy();
enemy.x = 500 + Math.random() * 3000;
enemy.y = 1800 + Math.random() * 400;
enemies.push(enemy);
battlefield.addChild(enemy);
}
// Touch controls
game.down = function (x, y, obj) {
// Convert screen coordinates to battlefield coordinates
var battlefieldPos = battlefield.toLocal({
x: x - game.x,
y: y - game.y
});
// Check for enemy hits
var hit = false;
for (var i = enemies.length - 1; i >= 0; i--) {
var enemy = enemies[i];
var distance = Math.sqrt(Math.pow(battlefieldPos.x - enemy.x, 2) + Math.pow(battlefieldPos.y - enemy.y, 2));
// Hit detection with some tolerance
if (distance < 60) {
// Create hit marker
var hitMarker = new HitMarker();
hitMarker.x = enemy.x;
hitMarker.y = enemy.y;
hitMarkers.push(hitMarker);
battlefield.addChild(hitMarker);
// Remove enemy
enemy.destroy();
enemies.splice(i, 1);
// Update score
score += 10;
LK.setScore(score);
scoreTxt.setText('Score: ' + score);
// Play hit sound
LK.getSound('hit').play();
hit = true;
break;
}
}
if (!hit) {
// Play miss sound
LK.getSound('shoot').play();
}
// Spawn new enemy if less than 5
if (enemies.length < 5) {
var newEnemy = new Enemy();
newEnemy.x = 500 + Math.random() * 3000;
newEnemy.y = 1800 + Math.random() * 400;
enemies.push(newEnemy);
battlefield.addChild(newEnemy);
}
};
// Camera movement with touch
game.move = function (x, y, obj) {
// Update target camera position based on touch
targetCameraX = -(x - 1024) * 2;
targetCameraY = -(y - 1366) * 1.5;
// Clamp camera bounds
targetCameraX = Math.max(-1500, Math.min(1500, targetCameraX));
targetCameraY = Math.max(-800, Math.min(800, targetCameraY));
};
// Game update loop
game.update = function () {
// Smooth camera movement
cameraX += (targetCameraX - cameraX) * 0.1;
cameraY += (targetCameraY - cameraY) * 0.1;
// Apply camera position to battlefield
battlefield.x = 2048 + cameraX;
battlefield.y = 2048 + cameraY;
// Clean up destroyed hit markers
for (var i = hitMarkers.length - 1; i >= 0; i--) {
var marker = hitMarkers[i];
if (marker.timer >= marker.lifetime) {
hitMarkers.splice(i, 1);
}
}
// Win condition
if (score >= 100) {
LK.showYouWin();
}
}; /****
* Classes
****/
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 1.0
});
// Movement properties
self.speed = 1 + Math.random() * 2;
self.direction = (Math.random() - 0.5) * 2;
self.changeDirectionTimer = 0;
self.lastX = 0;
self.lastY = 0;
self.update = function () {
// Store last position for collision detection
self.lastX = self.x;
self.lastY = self.y;
// Change direction randomly
self.changeDirectionTimer++;
if (self.changeDirectionTimer > 180) {
// Change direction every 3 seconds
self.direction = (Math.random() - 0.5) * 2;
self.changeDirectionTimer = 0;
}
// Move horizontally
self.x += self.direction * self.speed;
// Keep within battlefield bounds
if (self.x < 200) {
self.x = 200;
self.direction = Math.abs(self.direction);
}
if (self.x > 3800) {
self.x = 3800;
self.direction = -Math.abs(self.direction);
}
};
return self;
});
var HitMarker = Container.expand(function () {
var self = Container.call(this);
var markerGraphics = self.attachAsset('hitMarker', {
anchorX: 0.5,
anchorY: 0.5
});
self.timer = 0;
self.lifetime = 60; // 1 second at 60fps
self.update = function () {
self.timer++;
// Fade out over time
markerGraphics.alpha = 1 - self.timer / self.lifetime;
if (self.timer >= self.lifetime) {
self.destroy();
}
};
return self;
});
// Game variables
var Scope = Container.expand(function () {
var self = Container.call(this);
// Create scope background
var scopeGraphics = self.attachAsset('scope', {
anchorX: 0.5,
anchorY: 0.5
});
// Create crosshair lines
var crosshairV = self.attachAsset('crosshair', {
anchorX: 0.5,
anchorY: 0.5
});
var crosshairH = self.attachAsset('crosshair', {
anchorX: 0.5,
anchorY: 0.5,
rotation: Math.PI / 2
});
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
// Game variables
var enemies = [];
var hitMarkers = [];
var scope;
var battlefield;
var cameraX = 0;
var cameraY = 0;
var targetCameraX = 0;
var targetCameraY = 0;
var score = 0;
// Create battlefield background
battlefield = game.addChild(LK.getAsset('background', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048,
y: 2048
}));
// Create scope overlay
scope = LK.gui.center.addChild(new Scope());
scope.x = 0;
scope.y = 0;
// Create score display
var scoreTxt = new Text2('Score: 0', {
size: 60,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
scoreTxt.y = 100;
// Spawn initial enemies
for (var i = 0; i < 5; i++) {
var enemy = new Enemy();
enemy.x = 500 + Math.random() * 3000;
enemy.y = 1800 + Math.random() * 400;
enemies.push(enemy);
battlefield.addChild(enemy);
}
// Touch controls
game.down = function (x, y, obj) {
// Convert screen coordinates to battlefield coordinates
var battlefieldPos = battlefield.toLocal({
x: x - game.x,
y: y - game.y
});
// Check for enemy hits
var hit = false;
for (var i = enemies.length - 1; i >= 0; i--) {
var enemy = enemies[i];
var distance = Math.sqrt(Math.pow(battlefieldPos.x - enemy.x, 2) + Math.pow(battlefieldPos.y - enemy.y, 2));
// Hit detection with some tolerance
if (distance < 60) {
// Create hit marker
var hitMarker = new HitMarker();
hitMarker.x = enemy.x;
hitMarker.y = enemy.y;
hitMarkers.push(hitMarker);
battlefield.addChild(hitMarker);
// Remove enemy
enemy.destroy();
enemies.splice(i, 1);
// Update score
score += 10;
LK.setScore(score);
scoreTxt.setText('Score: ' + score);
// Play hit sound
LK.getSound('hit').play();
hit = true;
break;
}
}
if (!hit) {
// Play miss sound
LK.getSound('shoot').play();
}
// Spawn new enemy if less than 5
if (enemies.length < 5) {
var newEnemy = new Enemy();
newEnemy.x = 500 + Math.random() * 3000;
newEnemy.y = 1800 + Math.random() * 400;
enemies.push(newEnemy);
battlefield.addChild(newEnemy);
}
};
// Camera movement with touch
game.move = function (x, y, obj) {
// Update target camera position based on touch
targetCameraX = -(x - 1024) * 2;
targetCameraY = -(y - 1366) * 1.5;
// Clamp camera bounds
targetCameraX = Math.max(-1500, Math.min(1500, targetCameraX));
targetCameraY = Math.max(-800, Math.min(800, targetCameraY));
};
// Game update loop
game.update = function () {
// Smooth camera movement
cameraX += (targetCameraX - cameraX) * 0.1;
cameraY += (targetCameraY - cameraY) * 0.1;
// Apply camera position to battlefield
battlefield.x = 2048 + cameraX;
battlefield.y = 2048 + cameraY;
// Clean up destroyed hit markers
for (var i = hitMarkers.length - 1; i >= 0; i--) {
var marker = hitMarkers[i];
if (marker.timer >= marker.lifetime) {
hitMarkers.splice(i, 1);
}
}
// Win condition
if (score >= 100) {
LK.showYouWin();
}
};
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