var Background = Container.expand(function () { var self = Container.call(this); var backgroundGraphics = self.createAsset('background', 'Background Graphics', 0, 0); }); var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.createAsset('enemy', 'Enemy Graphics', .5, .5); self.speed = 5 + Math.floor(LK.ticks / 1800); self.move = function () { self.y += self.speed; }; }); var Star = Container.expand(function () { var self = Container.call(this); var starGraphics = self.createAsset('star', 'Star Graphics', .5, .5); self.speed = 5; self.move = function () { self.y += self.speed; }; }); var Hero = Container.expand(function () { var self = Container.call(this); var heroGraphics = self.createAsset('hero', 'Hero Graphics', .5, .5); self.move = function (x, y) { self.x = x; self.y = y; }; }); var Game = Container.expand(function () { var self = Container.call(this); var stars = []; var enemies = []; var hero = self.addChild(new Hero()); var background = self.addChild(new Background()); hero.x = 2048 / 2; hero.y = 2732 / 2; var highscoreList = new Text2('Highscores:\n', { size: 50, fill: '#ffffff' }); highscoreList.anchor.set(0, 0); LK.gui.bottomLeft.addChild(highscoreList); var updateHighscoreList = function () {}; updateHighscoreList(); var scoreTxt = new Text2('0', { size: 150, fill: "#ffffff" }); scoreTxt.anchor.set(.5, 0); LK.gui.topCenter.addChild(scoreTxt); var timerTxt = new Text2('60:00', { size: 100, fill: "#ffffff" }); timerTxt.anchor.set(.5, 0); LK.gui.topCenter.addChild(timerTxt); timerTxt.y = scoreTxt.height + 10; var dragNode = null; var isGameOver = false; var tickOffset = 0; var gameTimer = 60 * 60; stage.on('move', function (obj) { var event = obj.event; var pos = event.getLocalPosition(self); if (dragNode) { dragNode.move(pos.x, pos.y); } }); stage.on('down', function (obj) { var event = obj.event; var pos = event.getLocalPosition(self); dragNode = hero; dragNode.move(pos.x, pos.y); }); LK.on('tick', function () { for (var b = enemies.length - 1; b >= 0; b--) { for (var e = 0; e < enemies.length; e++) { if (hero.intersects(enemies[e])) { isGameOver = true; break; } } var enemy = enemies[b]; if (enemy) { enemy.move(); if (enemy.y > 2732) { enemy.destroy(); enemies.splice(b, 1); } } } for (var a = stars.length - 1; a >= 0; a--) { var star = stars[a]; if (star) { star.move(); if (star.y > 2732) { star.destroy(); stars.splice(a, 1); } } } if (tickOffset++ % 60 == 0) { var newEnemy = new Enemy(); newEnemy.x = Math.random() * 2048; newEnemy.y = 0; enemies.push(newEnemy); self.addChild(newEnemy); } if (tickOffset % 30 == 0) { var newStar = new Star(); newStar.x = Math.random() * 2048; newStar.y = 0; stars.push(newStar); self.addChild(newStar); } for (var i = 0; i < stars.length; i++) { if (hero.intersects(stars[i])) { LK.setScore(LK.getScore() + 1); scoreTxt.setText(LK.getScore()); stars[i].destroy(); stars.splice(i, 1); } } gameTimer--; var minutes = Math.floor(gameTimer / 3600); var seconds = Math.floor(gameTimer % 3600 / 60); timerTxt.setText(minutes + ':' + (seconds < 10 ? '0' : '') + seconds); if (gameTimer <= 0 || isGameOver) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } }); });
var Background = Container.expand(function () {
var self = Container.call(this);
var backgroundGraphics = self.createAsset('background', 'Background Graphics', 0, 0);
});
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.createAsset('enemy', 'Enemy Graphics', .5, .5);
self.speed = 5 + Math.floor(LK.ticks / 1800);
self.move = function () {
self.y += self.speed;
};
});
var Star = Container.expand(function () {
var self = Container.call(this);
var starGraphics = self.createAsset('star', 'Star Graphics', .5, .5);
self.speed = 5;
self.move = function () {
self.y += self.speed;
};
});
var Hero = Container.expand(function () {
var self = Container.call(this);
var heroGraphics = self.createAsset('hero', 'Hero Graphics', .5, .5);
self.move = function (x, y) {
self.x = x;
self.y = y;
};
});
var Game = Container.expand(function () {
var self = Container.call(this);
var stars = [];
var enemies = [];
var hero = self.addChild(new Hero());
var background = self.addChild(new Background());
hero.x = 2048 / 2;
hero.y = 2732 / 2;
var highscoreList = new Text2('Highscores:\n', {
size: 50,
fill: '#ffffff'
});
highscoreList.anchor.set(0, 0);
LK.gui.bottomLeft.addChild(highscoreList);
var updateHighscoreList = function () {};
updateHighscoreList();
var scoreTxt = new Text2('0', {
size: 150,
fill: "#ffffff"
});
scoreTxt.anchor.set(.5, 0);
LK.gui.topCenter.addChild(scoreTxt);
var timerTxt = new Text2('60:00', {
size: 100,
fill: "#ffffff"
});
timerTxt.anchor.set(.5, 0);
LK.gui.topCenter.addChild(timerTxt);
timerTxt.y = scoreTxt.height + 10;
var dragNode = null;
var isGameOver = false;
var tickOffset = 0;
var gameTimer = 60 * 60;
stage.on('move', function (obj) {
var event = obj.event;
var pos = event.getLocalPosition(self);
if (dragNode) {
dragNode.move(pos.x, pos.y);
}
});
stage.on('down', function (obj) {
var event = obj.event;
var pos = event.getLocalPosition(self);
dragNode = hero;
dragNode.move(pos.x, pos.y);
});
LK.on('tick', function () {
for (var b = enemies.length - 1; b >= 0; b--) {
for (var e = 0; e < enemies.length; e++) {
if (hero.intersects(enemies[e])) {
isGameOver = true;
break;
}
}
var enemy = enemies[b];
if (enemy) {
enemy.move();
if (enemy.y > 2732) {
enemy.destroy();
enemies.splice(b, 1);
}
}
}
for (var a = stars.length - 1; a >= 0; a--) {
var star = stars[a];
if (star) {
star.move();
if (star.y > 2732) {
star.destroy();
stars.splice(a, 1);
}
}
}
if (tickOffset++ % 60 == 0) {
var newEnemy = new Enemy();
newEnemy.x = Math.random() * 2048;
newEnemy.y = 0;
enemies.push(newEnemy);
self.addChild(newEnemy);
}
if (tickOffset % 30 == 0) {
var newStar = new Star();
newStar.x = Math.random() * 2048;
newStar.y = 0;
stars.push(newStar);
self.addChild(newStar);
}
for (var i = 0; i < stars.length; i++) {
if (hero.intersects(stars[i])) {
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore());
stars[i].destroy();
stars.splice(i, 1);
}
}
gameTimer--;
var minutes = Math.floor(gameTimer / 3600);
var seconds = Math.floor(gameTimer % 3600 / 60);
timerTxt.setText(minutes + ':' + (seconds < 10 ? '0' : '') + seconds);
if (gameTimer <= 0 || isGameOver) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
});
});
A child with wings, top down view Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Meteor, highly detailed Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Space, highly detailed Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Beautiful Bright Star, highly detailed Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.