/**** * Classes ****/ // Alien class var Alien = Container.expand(function () { var self = Container.call(this); var alienGraphics = self.attachAsset('alien', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.update = function () { self.y += self.speed; if (self.y > 2732 + 50) { self.destroy(); aliens.splice(aliens.indexOf(self), 1); } }; self.shoot = function () { if (enemyMissiles.length < 4) { var missile = new EnemyMissile(); missile.x = self.x; missile.y = self.y + alienGraphics.height / 2; enemyMissiles.push(missile); game.addChild(missile); } }; }); // EnemyMissile class var EnemyMissile = Container.expand(function () { var self = Container.call(this); var missileGraphics = self.attachAsset('enemyMissile', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 10; self.update = function () { self.y += self.speed; if (self.y > 2732 + 50) { self.destroy(); enemyMissiles.splice(enemyMissiles.indexOf(self), 1); } }; }); // Assets will be automatically created and loaded based on their usage in the code. // FighterJet class var FighterJet = Container.expand(function () { var self = Container.call(this); var jetGraphics = self.attachAsset('fighterJet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 10; self.update = function () { // Update logic for the fighter jet }; self.shoot = function () { if (heroMissiles.length < 4) { var missile = new HeroMissile(); missile.x = self.x; missile.y = self.y - jetGraphics.height / 2; heroMissiles.push(missile); game.addChild(missile); } }; }); // HeroMissile class var HeroMissile = Container.expand(function () { var self = Container.call(this); var missileGraphics = self.attachAsset('heroMissile', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -15; self.update = function () { self.y += self.speed; if (self.y < -50) { self.destroy(); heroMissiles.splice(heroMissiles.indexOf(self), 1); } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 // Init game with black background }); /**** * Game Code ****/ // Initialize score var score = 0; // Initialize score text var scoreTxt = new Text2(score.toString(), { size: 50, fill: "#ffffff" }); scoreTxt.x = 20; scoreTxt.y = 20; LK.gui.top.addChild(scoreTxt); var fighterJet = game.addChild(new FighterJet()); fighterJet.x = 2048 / 2; fighterJet.y = 2732 - 200; var heroMissiles = []; var aliens = []; var enemyMissiles = []; // Handle game move events game.move = function (x, y, obj) { fighterJet.x = x; fighterJet.y = y; }; // Handle game down events game.down = function (x, y, obj) { fighterJet.shoot(); }; // Game update loop game.update = function () { // Update all missiles heroMissiles.forEach(function (missile) { missile.update(); }); enemyMissiles.forEach(function (missile) { missile.update(); }); // Update all aliens aliens.forEach(function (alien) { alien.update(); if (Math.random() < 0.01) { alien.shoot(); } // Check for collision between fighterJet and alien if (fighterJet.intersects(alien)) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } }); // Check for collision between fighterJet and enemyMissiles enemyMissiles.forEach(function (missile) { if (fighterJet.intersects(missile)) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } }); // Check for collision between heroMissiles and aliens or enemyMissiles heroMissiles.forEach(function (heroMissile) { aliens.forEach(function (alien) { if (heroMissile.intersects(alien)) { LK.effects.flashObject(alien, 0xff0000, 1000); alien.destroy(); aliens.splice(aliens.indexOf(alien), 1); // Add explosion effect for heroMissile LK.effects.flashObject(heroMissile, 0xff0000, 1000); heroMissile.destroy(); heroMissiles.splice(heroMissiles.indexOf(heroMissile), 1); // Update score score += 150; scoreTxt.setText(score.toString()); } }); enemyMissiles.forEach(function (enemyMissile) { if (heroMissile.intersects(enemyMissile)) { LK.effects.flashObject(enemyMissile, 0xff0000, 1000); enemyMissile.destroy(); enemyMissiles.splice(enemyMissiles.indexOf(enemyMissile), 1); // Add explosion effect for heroMissile LK.effects.flashObject(heroMissile, 0xff0000, 1000); heroMissile.destroy(); heroMissiles.splice(heroMissiles.indexOf(heroMissile), 1); // Update score score += 50; scoreTxt.setText(score.toString()); } }); }); // Spawn new aliens if (LK.ticks % 60 == 0) { var alien = new Alien(); alien.x = Math.random() * 2048; alien.y = -50; aliens.push(alien); game.addChild(alien); } };
/****
* Classes
****/
// Alien class
var Alien = Container.expand(function () {
var self = Container.call(this);
var alienGraphics = self.attachAsset('alien', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.update = function () {
self.y += self.speed;
if (self.y > 2732 + 50) {
self.destroy();
aliens.splice(aliens.indexOf(self), 1);
}
};
self.shoot = function () {
if (enemyMissiles.length < 4) {
var missile = new EnemyMissile();
missile.x = self.x;
missile.y = self.y + alienGraphics.height / 2;
enemyMissiles.push(missile);
game.addChild(missile);
}
};
});
// EnemyMissile class
var EnemyMissile = Container.expand(function () {
var self = Container.call(this);
var missileGraphics = self.attachAsset('enemyMissile', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 10;
self.update = function () {
self.y += self.speed;
if (self.y > 2732 + 50) {
self.destroy();
enemyMissiles.splice(enemyMissiles.indexOf(self), 1);
}
};
});
// Assets will be automatically created and loaded based on their usage in the code.
// FighterJet class
var FighterJet = Container.expand(function () {
var self = Container.call(this);
var jetGraphics = self.attachAsset('fighterJet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 10;
self.update = function () {
// Update logic for the fighter jet
};
self.shoot = function () {
if (heroMissiles.length < 4) {
var missile = new HeroMissile();
missile.x = self.x;
missile.y = self.y - jetGraphics.height / 2;
heroMissiles.push(missile);
game.addChild(missile);
}
};
});
// HeroMissile class
var HeroMissile = Container.expand(function () {
var self = Container.call(this);
var missileGraphics = self.attachAsset('heroMissile', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = -15;
self.update = function () {
self.y += self.speed;
if (self.y < -50) {
self.destroy();
heroMissiles.splice(heroMissiles.indexOf(self), 1);
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 // Init game with black background
});
/****
* Game Code
****/
// Initialize score
var score = 0;
// Initialize score text
var scoreTxt = new Text2(score.toString(), {
size: 50,
fill: "#ffffff"
});
scoreTxt.x = 20;
scoreTxt.y = 20;
LK.gui.top.addChild(scoreTxt);
var fighterJet = game.addChild(new FighterJet());
fighterJet.x = 2048 / 2;
fighterJet.y = 2732 - 200;
var heroMissiles = [];
var aliens = [];
var enemyMissiles = [];
// Handle game move events
game.move = function (x, y, obj) {
fighterJet.x = x;
fighterJet.y = y;
};
// Handle game down events
game.down = function (x, y, obj) {
fighterJet.shoot();
};
// Game update loop
game.update = function () {
// Update all missiles
heroMissiles.forEach(function (missile) {
missile.update();
});
enemyMissiles.forEach(function (missile) {
missile.update();
});
// Update all aliens
aliens.forEach(function (alien) {
alien.update();
if (Math.random() < 0.01) {
alien.shoot();
}
// Check for collision between fighterJet and alien
if (fighterJet.intersects(alien)) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
});
// Check for collision between fighterJet and enemyMissiles
enemyMissiles.forEach(function (missile) {
if (fighterJet.intersects(missile)) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
});
// Check for collision between heroMissiles and aliens or enemyMissiles
heroMissiles.forEach(function (heroMissile) {
aliens.forEach(function (alien) {
if (heroMissile.intersects(alien)) {
LK.effects.flashObject(alien, 0xff0000, 1000);
alien.destroy();
aliens.splice(aliens.indexOf(alien), 1);
// Add explosion effect for heroMissile
LK.effects.flashObject(heroMissile, 0xff0000, 1000);
heroMissile.destroy();
heroMissiles.splice(heroMissiles.indexOf(heroMissile), 1);
// Update score
score += 150;
scoreTxt.setText(score.toString());
}
});
enemyMissiles.forEach(function (enemyMissile) {
if (heroMissile.intersects(enemyMissile)) {
LK.effects.flashObject(enemyMissile, 0xff0000, 1000);
enemyMissile.destroy();
enemyMissiles.splice(enemyMissiles.indexOf(enemyMissile), 1);
// Add explosion effect for heroMissile
LK.effects.flashObject(heroMissile, 0xff0000, 1000);
heroMissile.destroy();
heroMissiles.splice(heroMissiles.indexOf(heroMissile), 1);
// Update score
score += 50;
scoreTxt.setText(score.toString());
}
});
});
// Spawn new aliens
if (LK.ticks % 60 == 0) {
var alien = new Alien();
alien.x = Math.random() * 2048;
alien.y = -50;
aliens.push(alien);
game.addChild(alien);
}
};
It looks like a bright green space invader. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a While missile, with a red top that is pointing downwards. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
An f18 but vertical with the cockpit facing up. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.