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