/**** * Classes ****/ var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 15; self.targetX = 0; self.targetY = 0; self.directionX = 0; self.directionY = 0; self.update = function () { self.x += self.directionX * self.speed; self.y += self.directionY * self.speed; }; return self; }); var Coin = Container.expand(function () { var self = Container.call(this); var coinGraphics = self.attachAsset('coin', { anchorX: 0.5, anchorY: 0.5 }); return self; }); var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 10; self.update = function () { if (player) { // Calculate direction towards player var dx = player.x - self.x; var dy = player.y - self.y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance > 0) { // Normalize and apply speed self.x += dx / distance * self.speed; self.y += dy / distance * self.speed; } } }; return self; }); var EnemyBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('enemyBullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 12; self.directionX = 0; self.directionY = 0; self.update = function () { self.x += self.directionX * self.speed; self.y += self.directionY * self.speed; }; return self; }); var EnemyFriend = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemyFriend', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 8; self.update = function () { if (player) { // Calculate direction towards player var dx = player.x - self.x; var dy = player.y - self.y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance > 0) { // Normalize and apply speed self.x += dx / distance * self.speed; self.y += dy / distance * self.speed; } } }; return self; }); var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); return self; }); var Skull = Container.expand(function () { var self = Container.call(this); var skullGraphics = self.attachAsset('skull', { anchorX: 0.5, anchorY: 0.5 }); self.health = 100; self.speed = 6; self.update = function () { if (player) { // Calculate direction towards player var dx = player.x - self.x; var dy = player.y - self.y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance > 0) { // Normalize and apply speed self.x += dx / distance * self.speed; self.y += dy / distance * self.speed; } } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x333333 }); /**** * Game Code ****/ var player; var enemy; var gameStartTime; var dragNode = null; var lastIntersecting = false; var counter = 0; var lastCounterUpdate = 0; var coins = []; var collectedCoins = 0; var bullets = []; var shootTarget = null; var enemyHealth = 100; var enemyBullets = []; var skull = null; var skullHealth = 100; var enemyShootTimer = 0; // Score display var scoreTxt = new Text2('Time: 0', { size: 80, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Counter display in top right var counterTxt = new Text2('0', { size: 80, fill: 0xFFFFFF }); counterTxt.anchor.set(1, 0); LK.gui.topRight.addChild(counterTxt); // Enemy health display in bottom right var enemyHealthTxt = new Text2('Health: 100', { size: 60, fill: 0xff0000 }); enemyHealthTxt.anchor.set(1, 1); LK.gui.bottomRight.addChild(enemyHealthTxt); // Skull health display in bottom left var skullHealthTxt = new Text2('', { size: 60, fill: 0x00ff00 }); skullHealthTxt.anchor.set(0, 1); LK.gui.bottomLeft.addChild(skullHealthTxt); // Create player player = game.addChild(new Player()); player.x = 1024; // Center horizontally player.y = 1800; // Near bottom // Create enemy enemy = game.addChild(new Enemy()); enemy.x = 1024; // Center horizontally enemy.y = 400; // Near top // Record game start time gameStartTime = Date.now(); // Handle touch/drag movement function handleMove(x, y, obj) { if (dragNode) { dragNode.x = x; dragNode.y = y; // Keep player within screen bounds if (dragNode.x < 40) dragNode.x = 40; if (dragNode.x > 2008) dragNode.x = 2008; if (dragNode.y < 40) dragNode.y = 40; if (dragNode.y > 2692) dragNode.y = 2692; } } game.move = handleMove; game.down = function (x, y, obj) { // Check if tap is near player for dragging var distanceToPlayer = Math.sqrt((x - player.x) * (x - player.x) + (y - player.y) * (y - player.y)); if (distanceToPlayer < 100) { dragNode = player; handleMove(x, y, obj); } else { // Shoot bullet towards tap location var bullet = new Bullet(); bullet.x = player.x; bullet.y = player.y; // Calculate direction to target var dx = x - player.x; var dy = y - player.y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance > 0) { bullet.directionX = dx / distance; bullet.directionY = dy / distance; } bullets.push(bullet); game.addChild(bullet); } }; game.up = function (x, y, obj) { dragNode = null; }; game.update = function () { // Spawn new coins randomly if (LK.ticks % 150 === 0) { // Every 2.5 seconds var newCoin = new Coin(); newCoin.x = Math.random() * (2048 - 100) + 50; newCoin.y = Math.random() * (2732 - 100) + 50; coins.push(newCoin); game.addChild(newCoin); } // Update bullets and check collisions for (var i = bullets.length - 1; i >= 0; i--) { var bullet = bullets[i]; // Remove bullets that go off screen if (bullet.x < 0 || bullet.x > 2048 || bullet.y < 0 || bullet.y > 2732) { bullet.destroy(); bullets.splice(i, 1); continue; } // Check bullet collision with enemy if (bullet.intersects(enemy)) { // Reduce enemy health by 5 enemyHealth -= 5; // Update enemy health display enemyHealthTxt.setText('Health: ' + enemyHealth); // Check if enemy is defeated if (enemyHealth <= 0) { // Create skull at enemy position skull = game.addChild(new Skull()); skull.x = enemy.x; skull.y = enemy.y; skullHealth = 100; skullHealthTxt.setText('Skull Health: ' + skullHealth); // Remove old enemy and create new enemy friend enemy.destroy(); enemy = game.addChild(new EnemyFriend()); enemy.x = Math.random() * 1800 + 100; enemy.y = Math.random() * 400 + 100; enemyHealth = 100; enemyHealthTxt.setText('Health: ' + enemyHealth); } bullet.destroy(); bullets.splice(i, 1); continue; } // Check bullet collision with skull if it exists if (skull && bullet.intersects(skull)) { // Reduce skull health by 5 skullHealth -= 5; // Update skull health display skullHealthTxt.setText('Skull Health: ' + skullHealth); // Check if skull is defeated if (skullHealth <= 0) { skull.destroy(); skull = null; skullHealthTxt.setText(''); } bullet.destroy(); bullets.splice(i, 1); continue; } } // Enemy shooting logic enemyShootTimer++; if (enemyShootTimer >= 120) { // Shoot every 2 seconds enemyShootTimer = 0; var enemyBullet = new EnemyBullet(); enemyBullet.x = enemy.x; enemyBullet.y = enemy.y; // Calculate direction to player var dx = player.x - enemy.x; var dy = player.y - enemy.y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance > 0) { enemyBullet.directionX = dx / distance; enemyBullet.directionY = dy / distance; } enemyBullets.push(enemyBullet); game.addChild(enemyBullet); } // Update enemy bullets and check collisions for (var i = enemyBullets.length - 1; i >= 0; i--) { var enemyBullet = enemyBullets[i]; // Remove bullets that go off screen if (enemyBullet.x < 0 || enemyBullet.x > 2048 || enemyBullet.y < 0 || enemyBullet.y > 2732) { enemyBullet.destroy(); enemyBullets.splice(i, 1); continue; } // Check enemy bullet collision with player if (enemyBullet.intersects(player)) { // Game over - player hit by enemy bullet LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } } // Check coin collection for (var i = coins.length - 1; i >= 0; i--) { var coin = coins[i]; if (player.intersects(coin)) { collectedCoins++; coin.destroy(); coins.splice(i, 1); // Check if we collected 5 coins if (collectedCoins >= 5) { collectedCoins -= 5; // Reset coin count LK.setScore(LK.getScore() + 1); } } } // Update survival time score var currentTime = Date.now(); var survivalTime = Math.floor((currentTime - gameStartTime) / 1000); scoreTxt.setText('Time: ' + survivalTime); LK.setScore(survivalTime); // Update counter every 10 seconds if (survivalTime >= lastCounterUpdate + 10) { counter++; counterTxt.setText(counter.toString()); lastCounterUpdate = survivalTime; } // Check collision between player and enemy var currentIntersecting = player.intersects(enemy); if (!lastIntersecting && currentIntersecting) { // Game over - enemy caught player LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } lastIntersecting = currentIntersecting; // Gradually increase enemy speed over time for difficulty if (LK.ticks % 300 === 0) { // Every 5 seconds enemy.speed += 0.1; } };
/****
* Classes
****/
var Bullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 15;
self.targetX = 0;
self.targetY = 0;
self.directionX = 0;
self.directionY = 0;
self.update = function () {
self.x += self.directionX * self.speed;
self.y += self.directionY * self.speed;
};
return self;
});
var Coin = Container.expand(function () {
var self = Container.call(this);
var coinGraphics = self.attachAsset('coin', {
anchorX: 0.5,
anchorY: 0.5
});
return self;
});
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 10;
self.update = function () {
if (player) {
// Calculate direction towards player
var dx = player.x - self.x;
var dy = player.y - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 0) {
// Normalize and apply speed
self.x += dx / distance * self.speed;
self.y += dy / distance * self.speed;
}
}
};
return self;
});
var EnemyBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('enemyBullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 12;
self.directionX = 0;
self.directionY = 0;
self.update = function () {
self.x += self.directionX * self.speed;
self.y += self.directionY * self.speed;
};
return self;
});
var EnemyFriend = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemyFriend', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 8;
self.update = function () {
if (player) {
// Calculate direction towards player
var dx = player.x - self.x;
var dy = player.y - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 0) {
// Normalize and apply speed
self.x += dx / distance * self.speed;
self.y += dy / distance * self.speed;
}
}
};
return self;
});
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
return self;
});
var Skull = Container.expand(function () {
var self = Container.call(this);
var skullGraphics = self.attachAsset('skull', {
anchorX: 0.5,
anchorY: 0.5
});
self.health = 100;
self.speed = 6;
self.update = function () {
if (player) {
// Calculate direction towards player
var dx = player.x - self.x;
var dy = player.y - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 0) {
// Normalize and apply speed
self.x += dx / distance * self.speed;
self.y += dy / distance * self.speed;
}
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x333333
});
/****
* Game Code
****/
var player;
var enemy;
var gameStartTime;
var dragNode = null;
var lastIntersecting = false;
var counter = 0;
var lastCounterUpdate = 0;
var coins = [];
var collectedCoins = 0;
var bullets = [];
var shootTarget = null;
var enemyHealth = 100;
var enemyBullets = [];
var skull = null;
var skullHealth = 100;
var enemyShootTimer = 0;
// Score display
var scoreTxt = new Text2('Time: 0', {
size: 80,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Counter display in top right
var counterTxt = new Text2('0', {
size: 80,
fill: 0xFFFFFF
});
counterTxt.anchor.set(1, 0);
LK.gui.topRight.addChild(counterTxt);
// Enemy health display in bottom right
var enemyHealthTxt = new Text2('Health: 100', {
size: 60,
fill: 0xff0000
});
enemyHealthTxt.anchor.set(1, 1);
LK.gui.bottomRight.addChild(enemyHealthTxt);
// Skull health display in bottom left
var skullHealthTxt = new Text2('', {
size: 60,
fill: 0x00ff00
});
skullHealthTxt.anchor.set(0, 1);
LK.gui.bottomLeft.addChild(skullHealthTxt);
// Create player
player = game.addChild(new Player());
player.x = 1024; // Center horizontally
player.y = 1800; // Near bottom
// Create enemy
enemy = game.addChild(new Enemy());
enemy.x = 1024; // Center horizontally
enemy.y = 400; // Near top
// Record game start time
gameStartTime = Date.now();
// Handle touch/drag movement
function handleMove(x, y, obj) {
if (dragNode) {
dragNode.x = x;
dragNode.y = y;
// Keep player within screen bounds
if (dragNode.x < 40) dragNode.x = 40;
if (dragNode.x > 2008) dragNode.x = 2008;
if (dragNode.y < 40) dragNode.y = 40;
if (dragNode.y > 2692) dragNode.y = 2692;
}
}
game.move = handleMove;
game.down = function (x, y, obj) {
// Check if tap is near player for dragging
var distanceToPlayer = Math.sqrt((x - player.x) * (x - player.x) + (y - player.y) * (y - player.y));
if (distanceToPlayer < 100) {
dragNode = player;
handleMove(x, y, obj);
} else {
// Shoot bullet towards tap location
var bullet = new Bullet();
bullet.x = player.x;
bullet.y = player.y;
// Calculate direction to target
var dx = x - player.x;
var dy = y - player.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 0) {
bullet.directionX = dx / distance;
bullet.directionY = dy / distance;
}
bullets.push(bullet);
game.addChild(bullet);
}
};
game.up = function (x, y, obj) {
dragNode = null;
};
game.update = function () {
// Spawn new coins randomly
if (LK.ticks % 150 === 0) {
// Every 2.5 seconds
var newCoin = new Coin();
newCoin.x = Math.random() * (2048 - 100) + 50;
newCoin.y = Math.random() * (2732 - 100) + 50;
coins.push(newCoin);
game.addChild(newCoin);
}
// Update bullets and check collisions
for (var i = bullets.length - 1; i >= 0; i--) {
var bullet = bullets[i];
// Remove bullets that go off screen
if (bullet.x < 0 || bullet.x > 2048 || bullet.y < 0 || bullet.y > 2732) {
bullet.destroy();
bullets.splice(i, 1);
continue;
}
// Check bullet collision with enemy
if (bullet.intersects(enemy)) {
// Reduce enemy health by 5
enemyHealth -= 5;
// Update enemy health display
enemyHealthTxt.setText('Health: ' + enemyHealth);
// Check if enemy is defeated
if (enemyHealth <= 0) {
// Create skull at enemy position
skull = game.addChild(new Skull());
skull.x = enemy.x;
skull.y = enemy.y;
skullHealth = 100;
skullHealthTxt.setText('Skull Health: ' + skullHealth);
// Remove old enemy and create new enemy friend
enemy.destroy();
enemy = game.addChild(new EnemyFriend());
enemy.x = Math.random() * 1800 + 100;
enemy.y = Math.random() * 400 + 100;
enemyHealth = 100;
enemyHealthTxt.setText('Health: ' + enemyHealth);
}
bullet.destroy();
bullets.splice(i, 1);
continue;
}
// Check bullet collision with skull if it exists
if (skull && bullet.intersects(skull)) {
// Reduce skull health by 5
skullHealth -= 5;
// Update skull health display
skullHealthTxt.setText('Skull Health: ' + skullHealth);
// Check if skull is defeated
if (skullHealth <= 0) {
skull.destroy();
skull = null;
skullHealthTxt.setText('');
}
bullet.destroy();
bullets.splice(i, 1);
continue;
}
}
// Enemy shooting logic
enemyShootTimer++;
if (enemyShootTimer >= 120) {
// Shoot every 2 seconds
enemyShootTimer = 0;
var enemyBullet = new EnemyBullet();
enemyBullet.x = enemy.x;
enemyBullet.y = enemy.y;
// Calculate direction to player
var dx = player.x - enemy.x;
var dy = player.y - enemy.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 0) {
enemyBullet.directionX = dx / distance;
enemyBullet.directionY = dy / distance;
}
enemyBullets.push(enemyBullet);
game.addChild(enemyBullet);
}
// Update enemy bullets and check collisions
for (var i = enemyBullets.length - 1; i >= 0; i--) {
var enemyBullet = enemyBullets[i];
// Remove bullets that go off screen
if (enemyBullet.x < 0 || enemyBullet.x > 2048 || enemyBullet.y < 0 || enemyBullet.y > 2732) {
enemyBullet.destroy();
enemyBullets.splice(i, 1);
continue;
}
// Check enemy bullet collision with player
if (enemyBullet.intersects(player)) {
// Game over - player hit by enemy bullet
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
}
// Check coin collection
for (var i = coins.length - 1; i >= 0; i--) {
var coin = coins[i];
if (player.intersects(coin)) {
collectedCoins++;
coin.destroy();
coins.splice(i, 1);
// Check if we collected 5 coins
if (collectedCoins >= 5) {
collectedCoins -= 5; // Reset coin count
LK.setScore(LK.getScore() + 1);
}
}
}
// Update survival time score
var currentTime = Date.now();
var survivalTime = Math.floor((currentTime - gameStartTime) / 1000);
scoreTxt.setText('Time: ' + survivalTime);
LK.setScore(survivalTime);
// Update counter every 10 seconds
if (survivalTime >= lastCounterUpdate + 10) {
counter++;
counterTxt.setText(counter.toString());
lastCounterUpdate = survivalTime;
}
// Check collision between player and enemy
var currentIntersecting = player.intersects(enemy);
if (!lastIntersecting && currentIntersecting) {
// Game over - enemy caught player
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
lastIntersecting = currentIntersecting;
// Gradually increase enemy speed over time for difficulty
if (LK.ticks % 300 === 0) {
// Every 5 seconds
enemy.speed += 0.1;
}
};
hırsız. In-Game asset. 2d. High contrast. No shadows
öğrenci. In-Game asset. 2d. High contrast. No shadows
mermi. In-Game asset. 2d. High contrast. No shadows
kafatası. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
emrmi ama kırmızı. In-Game asset. 2d. High contrast. No shadows