/****
* 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