/**** * Classes ****/ var Cash = Container.expand(function () { var self = Container.call(this); var cashGraphics = self.attachAsset('cash', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Cash logic if needed }; }); // Guard class var Guard = Container.expand(function () { var self = Container.call(this); var guardGraphics = self.attachAsset('guard', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.update = function () { // Guard movement logic will be handled in the game update loop }; }); var PowerUp = Container.expand(function () { var self = Container.call(this); var powerUpGraphics = self.attachAsset('powerUp', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // PowerUp logic if needed }; }); //<Assets used in the game will automatically appear here> // Thief class var Thief = Container.expand(function () { var self = Container.call(this); var thiefGraphics = self.attachAsset('thief', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.update = function () { // Thief movement logic will be handled in the game update loop }; }); // Trap class var Trap = Container.expand(function () { var self = Container.call(this); var trapGraphics = self.attachAsset('trap', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Trap logic if needed }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x808080 //Init game with grey background }); /**** * Game Code ****/ function spawnPowerUp() { var powerUp = new PowerUp(); powerUp.x = Math.random() * 2048; powerUp.y = Math.random() * 2732; powerUps.push(powerUp); game.addChild(powerUp); } game.move = function (x, y, obj) { if (dragNode) { dragNode.x = x; dragNode.y = y; } }; game.up = function (x, y, obj) { dragNode = null; }; var thief = game.addChild(new Thief()); thief.x = 1024; thief.y = 1366; var cashItems = []; var traps = []; var guards = []; var powerUps = []; var score = 0; var scoreMultiplier = 1; var scoreTxt = new Text2('0', { size: 150, fill: "#ffffff" }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); function spawnCash() { var cash = new Cash(); cash.x = Math.random() * 2048; cash.y = Math.random() * 2732; cashItems.push(cash); game.addChild(cash); } function spawnTrap() { var trap = new Trap(); trap.x = Math.random() * 2048; trap.y = Math.random() * 2732; traps.push(trap); game.addChild(trap); } function spawnGuard() { var guard = new Guard(); guard.x = Math.random() * 2048; guard.y = Math.random() * 2732; guards.push(guard); game.addChild(guard); } var dragNode = null; game.down = function (x, y, obj) { dragNode = thief; thief.x = x; thief.y = y; }; game.update = function () { for (var i = cashItems.length - 1; i >= 0; i--) { if (thief.intersects(cashItems[i])) { score += 10 * scoreMultiplier; LK.setScore(score); scoreTxt.setText(score); cashItems[i].destroy(); cashItems.splice(i, 1); LK.getSound('CashCollect').play(); } } for (var i = traps.length - 1; i >= 0; i--) { if (thief.intersects(traps[i])) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } } for (var i = guards.length - 1; i >= 0; i--) { if (thief.intersects(guards[i])) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } } if (LK.ticks % 120 == 0) { spawnCash(); } if (LK.ticks % 300 == 0) { spawnTrap(); } if (LK.ticks % 600 == 0) { spawnGuard(); LK.getSound('Spawn').play(); } if (LK.ticks % 900 == 0) { spawnPowerUp(); } for (var i = powerUps.length - 1; i >= 0; i--) { if (thief.intersects(powerUps[i])) { scoreMultiplier = 2; LK.getSound('PowerUpCollect').play(); powerUps[i].destroy(); powerUps.splice(i, 1); LK.setTimeout(function () { scoreMultiplier = 1; }, 10000); } } guards.forEach(function (guard) { if (thief.x > guard.x) { guard.x += guard.speed; } else { guard.x -= guard.speed; } if (thief.y > guard.y) { guard.y += guard.speed; } else { guard.y -= guard.speed; } }); };
/****
* Classes
****/
var Cash = Container.expand(function () {
var self = Container.call(this);
var cashGraphics = self.attachAsset('cash', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Cash logic if needed
};
});
// Guard class
var Guard = Container.expand(function () {
var self = Container.call(this);
var guardGraphics = self.attachAsset('guard', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.update = function () {
// Guard movement logic will be handled in the game update loop
};
});
var PowerUp = Container.expand(function () {
var self = Container.call(this);
var powerUpGraphics = self.attachAsset('powerUp', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// PowerUp logic if needed
};
});
//<Assets used in the game will automatically appear here>
// Thief class
var Thief = Container.expand(function () {
var self = Container.call(this);
var thiefGraphics = self.attachAsset('thief', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.update = function () {
// Thief movement logic will be handled in the game update loop
};
});
// Trap class
var Trap = Container.expand(function () {
var self = Container.call(this);
var trapGraphics = self.attachAsset('trap', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Trap logic if needed
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x808080 //Init game with grey background
});
/****
* Game Code
****/
function spawnPowerUp() {
var powerUp = new PowerUp();
powerUp.x = Math.random() * 2048;
powerUp.y = Math.random() * 2732;
powerUps.push(powerUp);
game.addChild(powerUp);
}
game.move = function (x, y, obj) {
if (dragNode) {
dragNode.x = x;
dragNode.y = y;
}
};
game.up = function (x, y, obj) {
dragNode = null;
};
var thief = game.addChild(new Thief());
thief.x = 1024;
thief.y = 1366;
var cashItems = [];
var traps = [];
var guards = [];
var powerUps = [];
var score = 0;
var scoreMultiplier = 1;
var scoreTxt = new Text2('0', {
size: 150,
fill: "#ffffff"
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
function spawnCash() {
var cash = new Cash();
cash.x = Math.random() * 2048;
cash.y = Math.random() * 2732;
cashItems.push(cash);
game.addChild(cash);
}
function spawnTrap() {
var trap = new Trap();
trap.x = Math.random() * 2048;
trap.y = Math.random() * 2732;
traps.push(trap);
game.addChild(trap);
}
function spawnGuard() {
var guard = new Guard();
guard.x = Math.random() * 2048;
guard.y = Math.random() * 2732;
guards.push(guard);
game.addChild(guard);
}
var dragNode = null;
game.down = function (x, y, obj) {
dragNode = thief;
thief.x = x;
thief.y = y;
};
game.update = function () {
for (var i = cashItems.length - 1; i >= 0; i--) {
if (thief.intersects(cashItems[i])) {
score += 10 * scoreMultiplier;
LK.setScore(score);
scoreTxt.setText(score);
cashItems[i].destroy();
cashItems.splice(i, 1);
LK.getSound('CashCollect').play();
}
}
for (var i = traps.length - 1; i >= 0; i--) {
if (thief.intersects(traps[i])) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
}
for (var i = guards.length - 1; i >= 0; i--) {
if (thief.intersects(guards[i])) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
}
if (LK.ticks % 120 == 0) {
spawnCash();
}
if (LK.ticks % 300 == 0) {
spawnTrap();
}
if (LK.ticks % 600 == 0) {
spawnGuard();
LK.getSound('Spawn').play();
}
if (LK.ticks % 900 == 0) {
spawnPowerUp();
}
for (var i = powerUps.length - 1; i >= 0; i--) {
if (thief.intersects(powerUps[i])) {
scoreMultiplier = 2;
LK.getSound('PowerUpCollect').play();
powerUps[i].destroy();
powerUps.splice(i, 1);
LK.setTimeout(function () {
scoreMultiplier = 1;
}, 10000);
}
}
guards.forEach(function (guard) {
if (thief.x > guard.x) {
guard.x += guard.speed;
} else {
guard.x -= guard.speed;
}
if (thief.y > guard.y) {
guard.y += guard.speed;
} else {
guard.y -= guard.speed;
}
});
};
A security guard. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A stack of money. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A thief with a mask and steal bag. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A trap. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Powerup about cash. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.