User prompt
check why rectangleBlock is spawning enemies at the left edge of the screen
Code edit (1 edits merged)
Please save this source code
User prompt
add logic to rectangleBlock to generate enemies in a rectangle patter, with the rectangle positioned in the middle of the screen
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'for (var i = 0; i < spawnedEnemies.length; i++) {' Line Number: 138
Code edit (1 edits merged)
Please save this source code
User prompt
update rectangleBlock so it spawns the enemies in the middle of the screen
Code edit (3 edits merged)
Please save this source code
User prompt
Fix Bug: 'Uncaught ReferenceError: enemy is not defined' in this line: 'game.addChild(enemy);' Line Number: 106
User prompt
Fix Bug: 'Uncaught ReferenceError: enemies is not defined' in this line: 'return enemies;' Line Number: 106
Code edit (3 edits merged)
Please save this source code
User prompt
Fix Bug: 'Uncaught ReferenceError: enemy is not defined' in this line: 'enemies.push(enemy);' Line Number: 105
Code edit (3 edits merged)
Please save this source code
User prompt
add logic for rectangleBlock(countX, countY, spacing) that spawns enemies in a rectangle pattern
Code edit (1 edits merged)
Please save this source code
Code edit (5 edits merged)
Please save this source code
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'x')' in this line: 'var middle = (game.width - EnemyShip.prototype.width) / 2;' Line Number: 79
Code edit (2 edits merged)
Please save this source code
User prompt
create a function to spawn enemy in various geometric patterns.
Code edit (2 edits merged)
Please save this source code
User prompt
update the code to spawn starts with different colored tint
Code edit (2 edits merged)
Please save this source code
User prompt
update Starfield to spawn stars of different sizes
Code edit (1 edits merged)
Please save this source code
User prompt
Fix Bug: 'ReferenceError: gasme is not defined' in this line: 'if (star.y > gasme.height) {' Line Number: 22
Code edit (1 edits merged)
Please save this source code
/****
* Classes
****/
var Starfield = Container.expand(function () {
var self = Container.call(this);
self.stars = [];
var numberOfStars = 300;
for (var i = 0; i < numberOfStars; i++) {
var star = LK.getAsset('star', 'Star');
star.anchor.set(0.5, 0.5);
star.x = Math.random() * game.width;
star.y = Math.random() * game.height;
star.speed = Math.random() * 2 + 0.5;
star.alpha = Math.random() * 0.5 + 0.1;
self.addChild(star);
self.stars.push(star);
}
self.moveStars = function () {
for (var i = 0; i < self.stars.length; i++) {
var star = self.stars[i];
star.y += star.speed;
if (star.y > gasme.height) {
star.y = -30;
}
}
};
});
// Hero ship class
var HeroShip = Container.expand(function () {
var self = Container.call(this);
var shipGraphics = self.createAsset('heroShip', 'Cute smiley ship', 0.5, 0.5);
self.speed = 5;
self.isShooting = false;
self.shootingInterval = 30;
self._shootingCounter = 0;
self.shoot = function () {
var bullet = new HeroBullet();
bullet.x = self.x;
bullet.y = self.y - self.height / 2;
game.addChild(bullet);
return bullet;
};
});
// Hero bullet class
var HeroBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.createAsset('heroBullet', 'Heart bullet', 0.5, 1);
self.speed = -10;
self.move = function () {
self.y += self.speed;
};
});
// Enemy ship class
var EnemyShip = Container.expand(function () {
var self = Container.call(this);
var shipGraphics = self.createAsset('enemyShip', 'Evil smiley', 0.5, 0.5);
self.speed = 2;
self.move = function () {
self.y += self.speed;
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0xFEF3BD // Init game with black background
});
/****
* Game Code
****/
// Initialize starfield
var starfield = game.addChild(new Starfield());
starfield.x = 0;
starfield.y = 0; // Start off screen
// Initialize important asset arrays
var heroBullets = [];
var enemyShips = [];
// Create hero ship
var heroShip = game.addChild(new HeroShip());
heroShip.x = game.width / 2;
heroShip.y = game.height - 450;
// Create enemies
function spawnEnemy() {
var enemy = new EnemyShip();
enemy.x = Math.random() * (game.width - enemy.width) + enemy.width / 2;
enemy.y = -enemy.height / 2;
enemyShips.push(enemy);
game.addChild(enemy);
}
// Spawn initial enemies
for (var i = 0; i < 5; i++) {
spawnEnemy();
}
// Game tick event
LK.on('tick', function () {
// Move the starfield
starfield.moveStars();
// Move hero bullets
for (var i = heroBullets.length - 1; i >= 0; i--) {
var bullet = heroBullets[i];
bullet.move();
if (bullet.y < -bullet.height) {
bullet.destroy();
heroBullets.splice(i, 1);
} else {
// Check collision with enemies
for (var j = enemyShips.length - 1; j >= 0; j--) {
if (bullet.intersects(enemyShips[j])) {
bullet.destroy();
enemyShips[j].destroy();
heroBullets.splice(i, 1);
enemyShips.splice(j, 1);
break;
}
}
}
}
// Move enemy ships
for (var i = enemyShips.length - 1; i >= 0; i--) {
var enemy = enemyShips[i];
enemy.move();
if (enemy.y > game.height + enemy.height / 2) {
enemy.destroy();
enemyShips.splice(i, 1);
spawnEnemy();
}
}
// Shoot bullets
if (heroShip._shootingCounter % heroShip.shootingInterval == 0) {
if (heroShip.isShooting) {
heroBullets.push(heroShip.shoot());
heroShip._shootingCounter = 0;
}
}
heroShip._shootingCounter += 1;
});
// Touch controls to make heroShip follow the pointer
game.on('move', function (obj) {
var touchPos = obj.event.getLocalPosition(game);
heroShip.x = touchPos.x;
});
game.on('down', function (obj) {
heroShip._shootingCounter = 0;
heroShip.isShooting = true;
});
game.on('up', function (obj) {
heroShip.isShooting = false;
});
a cute cool looking emoji face. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a cute looking heart. bright red.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
an evil looking emoji. purple and blue colors.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a shiny blue cute star. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A start button. White on Red.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a grey touchpad. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a bright yellow shiny cute star. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.