/**** 
* Classes
****/ 
// Define the ArrowSelector class
var ArrowSelector = Container.expand(function () {
	var self = Container.call(this);
	var colors = [0x4fd54a, 0xff0000, 0x0000ff, 0xffff00]; // Array of colors to choose from
	var currentColorIndex = 0; // Start with the first color
	var leftArrow = self.attachAsset('block', {
		width: 50,
		height: 100,
		color: 0x777777,
		anchorX: 0.5,
		anchorY: 0.5
	});
	var rightArrow = self.attachAsset('block', {
		width: 50,
		height: 100,
		color: 0x777777,
		anchorX: 0.5,
		anchorY: 0.5
	});
	leftArrow.x = 100; // Position left arrow
	leftArrow.y = 2732 - 200; // Position at the bottom of the screen
	rightArrow.x = 2048 - 100; // Position right arrow
	rightArrow.y = 2732 - 200; // Position at the bottom of the screen
	leftArrow.on('down', function () {
		currentColorIndex--;
		if (currentColorIndex < 0) {
			currentColorIndex = colors.length - 1;
		}
		hero.setColor(colors[currentColorIndex]); // Update hero color to the left
		updateHeroColorText(colors[currentColorIndex]); // Update the text displaying the hero's color
	});
	rightArrow.on('down', function () {
		currentColorIndex++;
		if (currentColorIndex >= colors.length) {
			currentColorIndex = 0;
		}
		hero.setColor(colors[currentColorIndex]); // Update hero color to the right
		updateHeroColorText(colors[currentColorIndex]); // Update the text displaying the hero's color
	});
	self.addChild(leftArrow);
	self.addChild(rightArrow);
});
// Define the Block class
var Block = Container.expand(function () {
	var self = Container.call(this);
	var blockGraphics = self.attachAsset('block', {
		anchorX: 0.5,
		anchorY: 0.5
	});
});
// Define the BossEnemy class
var BossEnemy = Container.expand(function () {
	var self = Container.call(this);
	var bossGraphics = self.attachAsset('bossEnemy', {
		anchorX: 0.5,
		anchorY: 0.5,
		scaleX: 4,
		scaleY: 4
	});
	// Initialize boss-specific properties
	self.health = 50; // Boss has more health
	self.speed = 2; // Boss moves slower
	self.shootInterval = 63; // Boss shoots every 1.05 seconds at 60FPS (decreased by 3x)
	self.lastShotTick = 0; // Track the last shot tick
	// Initialize direction for structured movement
	self.directionX = Math.random() < 0.5 ? -1 : 1;
	self.directionY = Math.random() < 0.5 ? -1 : 1;
	self._update_migrated = function () {
		// Boss update logic with structured movement
		self.x += self.directionX * self.speed;
		self.y += self.directionY * self.speed;
		// Reverse direction when hitting the screen boundaries
		if (self.x <= 100 || self.x >= 1948) {
			self.directionX *= -1;
		}
		if (self.y <= 100 || self.y >= 2732 / 2 - 100) {
			self.directionY *= -1;
		}
		// Boss specific logic for shooting
		self.shoot();
	};
	self.shoot = function () {
		if (LK.ticks - self.lastShotTick >= self.shootInterval) {
			var bullet = new EnemyBullet();
			bullet.x = self.x;
			bullet.y = self.y + 50; // Adjust bullet start position
			enemyBullets.push(bullet);
			game.addChild(bullet);
			self.lastShotTick = LK.ticks;
		}
	};
});
// Define the Enemy class
var Enemy = Container.expand(function () {
	var self = Container.call(this);
	var enemyGraphics = self.attachAsset('enemy', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// Initialize health for enemy to take 2 hits
	self.health = 2;
	// Initialize direction and speed for structured movement
	self.directionX = Math.random() < 0.5 ? -1 : 1;
	self.directionY = Math.random() < 0.5 ? -1 : 1;
	self.speed = 5;
	self._update_migrated = function () {
		self.x += self.directionX * self.speed;
		self.y += self.directionY * self.speed;
		// Reverse direction when hitting the screen boundaries
		if (self.x <= 100 || self.x >= 1948) {
			self.directionX *= -1;
		}
		if (self.y <= 100 || self.y >= 2732 / 2 - 100) {
			self.directionY *= -1;
		}
	};
});
// Define the EnemyBullet class
var EnemyBullet = Container.expand(function () {
	var self = Container.call(this);
	var bulletGraphics = self.attachAsset('enemyBullet', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 10;
	self._move_migrated = function () {
		self.y += self.speed;
	};
});
// Define the Hero class
var Hero = Container.expand(function () {
	var self = Container.call(this);
	var heroGraphics = self.attachAsset('hero', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.health = 5; // Player must be hit 5 times before dying
	self.shootInterval = 27; // 0.45 seconds at 60FPS
	self.lastShotTick = 0;
	self._update_migrated = function () {
		if (LK.ticks - self.lastShotTick >= self.shootInterval) {
			this.shoot();
			self.lastShotTick = LK.ticks;
		}
		self.setColor = function (color) {
			heroGraphics.tint = color; // Change the tint of the hero
		};
		// Hero update logic
	};
	self.shoot = function () {
		var bullet = new HeroBullet();
		bullet.x = this.x;
		bullet.y = this.y - 50; // Adjust bullet start position
		heroBullets.push(bullet);
		game.addChild(bullet);
	};
});
// Define the HeroBullet class
var HeroBullet = Container.expand(function () {
	var self = Container.call(this);
	var bulletGraphics = self.attachAsset('heroBullet', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = -10;
	self._move_migrated = function () {
		self.y += self.speed;
	};
});
var Star = Container.expand(function () {
	var self = Container.call(this);
	var starGraphics = self.attachAsset('whiteStar', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// Set a random scale for the star to vary its size
	var scale = Math.random() * 0.5 + 0.5;
	self.scaleX = scale;
	self.scaleY = scale;
	// Set a random alpha for the star to vary its brightness
	self.alpha = Math.random() * 0.5 + 0.5;
	// Set a random speed for the star to move downwards
	self.speed = Math.random() * 1 + 0.5;
	self._move_migrated = function () {
		self.y += self.speed;
		// Reset star position if it moves off screen
		if (self.y > 2732) {
			self.y = -10;
			self.x = Math.random() * 2048;
		}
	};
});
var WaveManager = Container.expand(function () {
	var self = Container.call(this);
	self.waveCount = 0;
	self.enemiesPerWave = 5;
	self.enemies = [];
	self.createWave = function () {
		if ((self.waveCount + 1) % 5 === 0) {
			// Every 5 waves, spawn a BossEnemy instead of regular enemies
			var bossEnemy = game.addChild(new BossEnemy());
			bossEnemy.x = 2048 / 2; // Start in the middle of the screen
			bossEnemy.y = 2732 / 4; // Start in the upper part of the screen
			self.enemies.push(bossEnemy);
		} else {
			// Other waves: Spawn regular enemies
			for (var i = 0; i < self.enemiesPerWave; i++) {
				var enemy = game.addChild(new Enemy());
				enemy.x = Math.random() * (2048 - 100) + 50;
				enemy.y = Math.random() * (2732 / 2 - 200) + 100;
				self.enemies.push(enemy);
			}
		}
		self.waveCount++;
		waveCounterTxt.setText('Wave: ' + (self.waveCount + 1));
	};
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000000 // Init game with black background
});
/**** 
* Game Code
****/ 
var colorSelector = game.addChild(new ArrowSelector());
var stars = [];
for (var i = 0; i < 100; i++) {
	var star = new Star();
	star.x = Math.random() * 2048;
	star.y = Math.random() * 2732;
	stars.push(star);
	game.addChild(star);
}
// Update the stars in the game tick event
LK.on('tick', function () {
	for (var i = 0; i < stars.length; i++) {
		stars[i]._move_migrated();
	}
	// Existing game tick code...
});
var waveManager = game.addChild(new WaveManager());
var waveCounterTxt = new Text2('Wave: 0', {
	size: 100,
	fill: 0xFFFFFF
});
LK.gui.top.addChild(waveCounterTxt);
waveManager.createWave();
// Define assets for the game
// Initialize game elements
var hero = game.addChild(new Hero());
hero.x = 2048 / 2;
hero.y = 2732 - 150;
var enemies = [];
var heroBullets = [];
var enemyBullets = [];
var blocks = [];
// Game tick event
LK.on('tick', function () {
	// Update hero
	hero._update_migrated();
	// Update enemies
	for (var i = 0; i < waveManager.enemies.length; i++) {
		waveManager.enemies[i]._update_migrated();
	}
	// Move hero bullets and check for collisions with enemies
	for (var i = heroBullets.length - 1; i >= 0; i--) {
		var bullet = heroBullets[i];
		bullet._move_migrated();
		// Check for bullet collision with enemies or off-screen
		for (var j = waveManager.enemies.length - 1; j >= 0; j--) {
			if (bullet.intersects(waveManager.enemies[j])) {
				// Decrease enemy health and check if it should be destroyed
				waveManager.enemies[j].health--;
				LK.effects.flashObject(waveManager.enemies[j], 0xff0000, 500);
				if (waveManager.enemies[j].health <= 0) {
					waveManager.enemies[j].destroy();
					waveManager.enemies.splice(j, 1);
				}
				bullet.destroy();
				heroBullets.splice(i, 1);
				break;
			}
		}
		if (bullet.y < 0) {
			bullet.destroy();
			heroBullets.splice(i, 1);
		}
	}
	// Check if all enemies are defeated to create a new wave
	if (waveManager.enemies.length === 0) {
		waveManager.createWave();
	}
	// Enemy shooting logic
	if (LK.ticks % 120 == 0) {
		waveManager.enemies.forEach(function (enemy) {
			var bullet = new EnemyBullet();
			bullet.x = enemy.x;
			bullet.y = enemy.y;
			enemyBullets.push(bullet);
			game.addChild(bullet);
		});
	}
	// Move enemy bullets and check for collisions
	for (var i = enemyBullets.length - 1; i >= 0; i--) {
		var bullet = enemyBullets[i];
		bullet._move_migrated();
		// Check for bullet collision with hero or off-screen
		if (bullet.intersects(hero)) {
			hero.health -= 1; // Decrease hero's health by one
			healthText.setText('Health: ' + hero.health);
			LK.effects.flashObject(hero, 0xff0000, 500);
			bullet.destroy();
			enemyBullets.splice(i, 1);
			if (hero.health <= 0) {
				// Game over logic
				LK.effects.flashScreen(0xff0000, 1000);
				LK.showGameOver();
			}
		}
		if (bullet.y > 2732) {
			bullet.destroy();
			enemyBullets.splice(i, 1);
		}
	}
});
// Touch event handling for hero movement and shooting
game.on('down', function (x, y, obj) {
	var pos = game.toLocal(obj.global);
	hero.x = pos.x;
});
var heroColorText = new Text2('', {
	size: 50,
	fill: 0xFFFFFF,
	x: 2048 / 2,
	y: 2732 - 100
});
LK.gui.bottom.addChild(heroColorText);
var healthText = new Text2('Health: 5', {
	size: 80,
	fill: 0xFF0000
});
healthText.anchor.set(0, 0);
LK.gui.topRight.addChild(healthText);
function updateHeroColorText(color) {
	var colorName = {
		0x4fd54a: 'Green',
		0xff0000: 'Red',
		0x0000ff: 'Blue',
		0xffff00: 'Yellow'
	};
	heroColorText.setText('Hero Color: ' + colorName[color]);
}
// Create a hero bullet when the hero shoots
Hero.prototype.shoot = function () {
	var bullet = new HeroBullet();
	bullet.x = this.x;
	bullet.y = this.y - 50; // Adjust bullet start position
	heroBullets.push(bullet);
	game.addChild(bullet);
};
// Update the hero's position based on touch movement
game.on('move', function (x, y, obj) {
	var pos = game.toLocal(obj.global);
	hero.x = pos.x;
});
// Ensure the hero stays within the game boundaries
Hero.prototype._update_migrated = function () {
	this.x = Math.max(50, Math.min(this.x, 2048 - 50));
}; /**** 
* Classes
****/ 
// Define the ArrowSelector class
var ArrowSelector = Container.expand(function () {
	var self = Container.call(this);
	var colors = [0x4fd54a, 0xff0000, 0x0000ff, 0xffff00]; // Array of colors to choose from
	var currentColorIndex = 0; // Start with the first color
	var leftArrow = self.attachAsset('block', {
		width: 50,
		height: 100,
		color: 0x777777,
		anchorX: 0.5,
		anchorY: 0.5
	});
	var rightArrow = self.attachAsset('block', {
		width: 50,
		height: 100,
		color: 0x777777,
		anchorX: 0.5,
		anchorY: 0.5
	});
	leftArrow.x = 100; // Position left arrow
	leftArrow.y = 2732 - 200; // Position at the bottom of the screen
	rightArrow.x = 2048 - 100; // Position right arrow
	rightArrow.y = 2732 - 200; // Position at the bottom of the screen
	leftArrow.on('down', function () {
		currentColorIndex--;
		if (currentColorIndex < 0) {
			currentColorIndex = colors.length - 1;
		}
		hero.setColor(colors[currentColorIndex]); // Update hero color to the left
		updateHeroColorText(colors[currentColorIndex]); // Update the text displaying the hero's color
	});
	rightArrow.on('down', function () {
		currentColorIndex++;
		if (currentColorIndex >= colors.length) {
			currentColorIndex = 0;
		}
		hero.setColor(colors[currentColorIndex]); // Update hero color to the right
		updateHeroColorText(colors[currentColorIndex]); // Update the text displaying the hero's color
	});
	self.addChild(leftArrow);
	self.addChild(rightArrow);
});
// Define the Block class
var Block = Container.expand(function () {
	var self = Container.call(this);
	var blockGraphics = self.attachAsset('block', {
		anchorX: 0.5,
		anchorY: 0.5
	});
});
// Define the BossEnemy class
var BossEnemy = Container.expand(function () {
	var self = Container.call(this);
	var bossGraphics = self.attachAsset('bossEnemy', {
		anchorX: 0.5,
		anchorY: 0.5,
		scaleX: 4,
		scaleY: 4
	});
	// Initialize boss-specific properties
	self.health = 50; // Boss has more health
	self.speed = 2; // Boss moves slower
	self.shootInterval = 63; // Boss shoots every 1.05 seconds at 60FPS (decreased by 3x)
	self.lastShotTick = 0; // Track the last shot tick
	// Initialize direction for structured movement
	self.directionX = Math.random() < 0.5 ? -1 : 1;
	self.directionY = Math.random() < 0.5 ? -1 : 1;
	self._update_migrated = function () {
		// Boss update logic with structured movement
		self.x += self.directionX * self.speed;
		self.y += self.directionY * self.speed;
		// Reverse direction when hitting the screen boundaries
		if (self.x <= 100 || self.x >= 1948) {
			self.directionX *= -1;
		}
		if (self.y <= 100 || self.y >= 2732 / 2 - 100) {
			self.directionY *= -1;
		}
		// Boss specific logic for shooting
		self.shoot();
	};
	self.shoot = function () {
		if (LK.ticks - self.lastShotTick >= self.shootInterval) {
			var bullet = new EnemyBullet();
			bullet.x = self.x;
			bullet.y = self.y + 50; // Adjust bullet start position
			enemyBullets.push(bullet);
			game.addChild(bullet);
			self.lastShotTick = LK.ticks;
		}
	};
});
// Define the Enemy class
var Enemy = Container.expand(function () {
	var self = Container.call(this);
	var enemyGraphics = self.attachAsset('enemy', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// Initialize health for enemy to take 2 hits
	self.health = 2;
	// Initialize direction and speed for structured movement
	self.directionX = Math.random() < 0.5 ? -1 : 1;
	self.directionY = Math.random() < 0.5 ? -1 : 1;
	self.speed = 5;
	self._update_migrated = function () {
		self.x += self.directionX * self.speed;
		self.y += self.directionY * self.speed;
		// Reverse direction when hitting the screen boundaries
		if (self.x <= 100 || self.x >= 1948) {
			self.directionX *= -1;
		}
		if (self.y <= 100 || self.y >= 2732 / 2 - 100) {
			self.directionY *= -1;
		}
	};
});
// Define the EnemyBullet class
var EnemyBullet = Container.expand(function () {
	var self = Container.call(this);
	var bulletGraphics = self.attachAsset('enemyBullet', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 10;
	self._move_migrated = function () {
		self.y += self.speed;
	};
});
// Define the Hero class
var Hero = Container.expand(function () {
	var self = Container.call(this);
	var heroGraphics = self.attachAsset('hero', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.health = 5; // Player must be hit 5 times before dying
	self.shootInterval = 27; // 0.45 seconds at 60FPS
	self.lastShotTick = 0;
	self._update_migrated = function () {
		if (LK.ticks - self.lastShotTick >= self.shootInterval) {
			this.shoot();
			self.lastShotTick = LK.ticks;
		}
		self.setColor = function (color) {
			heroGraphics.tint = color; // Change the tint of the hero
		};
		// Hero update logic
	};
	self.shoot = function () {
		var bullet = new HeroBullet();
		bullet.x = this.x;
		bullet.y = this.y - 50; // Adjust bullet start position
		heroBullets.push(bullet);
		game.addChild(bullet);
	};
});
// Define the HeroBullet class
var HeroBullet = Container.expand(function () {
	var self = Container.call(this);
	var bulletGraphics = self.attachAsset('heroBullet', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = -10;
	self._move_migrated = function () {
		self.y += self.speed;
	};
});
var Star = Container.expand(function () {
	var self = Container.call(this);
	var starGraphics = self.attachAsset('whiteStar', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// Set a random scale for the star to vary its size
	var scale = Math.random() * 0.5 + 0.5;
	self.scaleX = scale;
	self.scaleY = scale;
	// Set a random alpha for the star to vary its brightness
	self.alpha = Math.random() * 0.5 + 0.5;
	// Set a random speed for the star to move downwards
	self.speed = Math.random() * 1 + 0.5;
	self._move_migrated = function () {
		self.y += self.speed;
		// Reset star position if it moves off screen
		if (self.y > 2732) {
			self.y = -10;
			self.x = Math.random() * 2048;
		}
	};
});
var WaveManager = Container.expand(function () {
	var self = Container.call(this);
	self.waveCount = 0;
	self.enemiesPerWave = 5;
	self.enemies = [];
	self.createWave = function () {
		if ((self.waveCount + 1) % 5 === 0) {
			// Every 5 waves, spawn a BossEnemy instead of regular enemies
			var bossEnemy = game.addChild(new BossEnemy());
			bossEnemy.x = 2048 / 2; // Start in the middle of the screen
			bossEnemy.y = 2732 / 4; // Start in the upper part of the screen
			self.enemies.push(bossEnemy);
		} else {
			// Other waves: Spawn regular enemies
			for (var i = 0; i < self.enemiesPerWave; i++) {
				var enemy = game.addChild(new Enemy());
				enemy.x = Math.random() * (2048 - 100) + 50;
				enemy.y = Math.random() * (2732 / 2 - 200) + 100;
				self.enemies.push(enemy);
			}
		}
		self.waveCount++;
		waveCounterTxt.setText('Wave: ' + (self.waveCount + 1));
	};
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000000 // Init game with black background
});
/**** 
* Game Code
****/ 
var colorSelector = game.addChild(new ArrowSelector());
var stars = [];
for (var i = 0; i < 100; i++) {
	var star = new Star();
	star.x = Math.random() * 2048;
	star.y = Math.random() * 2732;
	stars.push(star);
	game.addChild(star);
}
// Update the stars in the game tick event
LK.on('tick', function () {
	for (var i = 0; i < stars.length; i++) {
		stars[i]._move_migrated();
	}
	// Existing game tick code...
});
var waveManager = game.addChild(new WaveManager());
var waveCounterTxt = new Text2('Wave: 0', {
	size: 100,
	fill: 0xFFFFFF
});
LK.gui.top.addChild(waveCounterTxt);
waveManager.createWave();
// Define assets for the game
// Initialize game elements
var hero = game.addChild(new Hero());
hero.x = 2048 / 2;
hero.y = 2732 - 150;
var enemies = [];
var heroBullets = [];
var enemyBullets = [];
var blocks = [];
// Game tick event
LK.on('tick', function () {
	// Update hero
	hero._update_migrated();
	// Update enemies
	for (var i = 0; i < waveManager.enemies.length; i++) {
		waveManager.enemies[i]._update_migrated();
	}
	// Move hero bullets and check for collisions with enemies
	for (var i = heroBullets.length - 1; i >= 0; i--) {
		var bullet = heroBullets[i];
		bullet._move_migrated();
		// Check for bullet collision with enemies or off-screen
		for (var j = waveManager.enemies.length - 1; j >= 0; j--) {
			if (bullet.intersects(waveManager.enemies[j])) {
				// Decrease enemy health and check if it should be destroyed
				waveManager.enemies[j].health--;
				LK.effects.flashObject(waveManager.enemies[j], 0xff0000, 500);
				if (waveManager.enemies[j].health <= 0) {
					waveManager.enemies[j].destroy();
					waveManager.enemies.splice(j, 1);
				}
				bullet.destroy();
				heroBullets.splice(i, 1);
				break;
			}
		}
		if (bullet.y < 0) {
			bullet.destroy();
			heroBullets.splice(i, 1);
		}
	}
	// Check if all enemies are defeated to create a new wave
	if (waveManager.enemies.length === 0) {
		waveManager.createWave();
	}
	// Enemy shooting logic
	if (LK.ticks % 120 == 0) {
		waveManager.enemies.forEach(function (enemy) {
			var bullet = new EnemyBullet();
			bullet.x = enemy.x;
			bullet.y = enemy.y;
			enemyBullets.push(bullet);
			game.addChild(bullet);
		});
	}
	// Move enemy bullets and check for collisions
	for (var i = enemyBullets.length - 1; i >= 0; i--) {
		var bullet = enemyBullets[i];
		bullet._move_migrated();
		// Check for bullet collision with hero or off-screen
		if (bullet.intersects(hero)) {
			hero.health -= 1; // Decrease hero's health by one
			healthText.setText('Health: ' + hero.health);
			LK.effects.flashObject(hero, 0xff0000, 500);
			bullet.destroy();
			enemyBullets.splice(i, 1);
			if (hero.health <= 0) {
				// Game over logic
				LK.effects.flashScreen(0xff0000, 1000);
				LK.showGameOver();
			}
		}
		if (bullet.y > 2732) {
			bullet.destroy();
			enemyBullets.splice(i, 1);
		}
	}
});
// Touch event handling for hero movement and shooting
game.on('down', function (x, y, obj) {
	var pos = game.toLocal(obj.global);
	hero.x = pos.x;
});
var heroColorText = new Text2('', {
	size: 50,
	fill: 0xFFFFFF,
	x: 2048 / 2,
	y: 2732 - 100
});
LK.gui.bottom.addChild(heroColorText);
var healthText = new Text2('Health: 5', {
	size: 80,
	fill: 0xFF0000
});
healthText.anchor.set(0, 0);
LK.gui.topRight.addChild(healthText);
function updateHeroColorText(color) {
	var colorName = {
		0x4fd54a: 'Green',
		0xff0000: 'Red',
		0x0000ff: 'Blue',
		0xffff00: 'Yellow'
	};
	heroColorText.setText('Hero Color: ' + colorName[color]);
}
// Create a hero bullet when the hero shoots
Hero.prototype.shoot = function () {
	var bullet = new HeroBullet();
	bullet.x = this.x;
	bullet.y = this.y - 50; // Adjust bullet start position
	heroBullets.push(bullet);
	game.addChild(bullet);
};
// Update the hero's position based on touch movement
game.on('move', function (x, y, obj) {
	var pos = game.toLocal(obj.global);
	hero.x = pos.x;
});
// Ensure the hero stays within the game boundaries
Hero.prototype._update_migrated = function () {
	this.x = Math.max(50, Math.min(this.x, 2048 - 50));
};
 Bullet. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 Arcade style militry jet. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
 Arcade style UFO's. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
 Arcade style shot down laser. In-Game asset. 2d. High contrast. No shadows
 Arcade style space ship. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
 an Arcade style MOther ship like Death star. In-Game asset. 2d. High contrast. No shadows
 cartoonish star. In-Game asset. 2d. High contrast. No shadows