Code edit (4 edits merged)
Please save this source code
User prompt
fix background image
Code edit (1 edits merged)
Please save this source code
Code edit (3 edits merged)
Please save this source code
User prompt
copy enemy_1 to enemy_3
User prompt
make sure the powerup level text is updated
Code edit (5 edits merged)
Please save this source code
User prompt
update the players score
User prompt
Please fix the bug: 'ReferenceError: enemy_2s is not defined' in or related to this line: 'for (var j = enemy_2s.length - 1; j >= 0; j--) {' Line Number: 212
User prompt
whena player defeats an enemy, increase the score, each enemy type has a different asociated score valu
User prompt
show powerup level on the left and score on the right
User prompt
show the players score and powerup level at the top of the screen
Code edit (1 edits merged)
Please save this source code
Code edit (13 edits merged)
Please save this source code
User prompt
you forgot to create a function to spawn enemy_2
User prompt
duplicate enemy_1 to enemy_2 and add a new image for it
Code edit (8 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Timeout.tick error: self is undefined' in or related to this line: 'enemy.xpos = groupX + Math.sin(self.y) * enemy_movemwnt_amplitude; // Assign the group x position to the enemy' Line Number: 183
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Timeout.tick error: enemy is undefined' in or related to this line: 'enemy.n = i;' Line Number: 179
User prompt
Please fix the bug: 'Timeout.tick error: enemy is undefined' in or related to this line: 'enemy.n = i;' Line Number: 179
Code edit (3 edits merged)
Please save this source code
User prompt
each enemy_1 must move in a signwave
Code edit (3 edits merged)
Please save this source code
/**** * Classes ****/ /**** * Variables ****/ // Bullet class var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -10; self.update = function () { self.y += self.speed; }; }); // Player class var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.shoot = function () { var bullet = new Bullet(); bullet.x = self.x; bullet.y = self.y - 50; bullets.push(bullet); game.addChild(bullet); }; }); // PowerUp class var PowerUp = Container.expand(function () { var self = Container.call(this); var powerUpGraphics = self.attachAsset('powerUp', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { self.y += 2; }; }); //<Assets used in the game will automatically appear here> //<Write imports for supported plugins here> // enemy_1 class var enemy_1 = Container.expand(function () { var self = Container.call(this); var enemy_1Graphics = self.attachAsset('enemy_a', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 3; self.update = function () { self.y += self.speed; }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 //Init game with black background }); /**** * Game Code ****/ /**** * Variables ****/ // Initialize player var enemy_movemwnt_amplitude = 400; var player = game.addChild(new Player()); player.x = 2048 / 2; player.y = 2500; // Initialize arrays var enemy_1s = []; var bullets = []; var powerUps = []; // Initialize enemy_1 group counter var enemy_1GroupCount = 0; // Game update function game.update = function () { // Update enemy_1s for (var i = enemy_1s.length - 1; i >= 0; i--) { var enemy_1 = enemy_1s[i]; enemy_1.update(); if (enemy_1.y > 2732) { enemy_1.destroy(); enemy_1s.splice(i, 1); } } // Update bullets for (var j = bullets.length - 1; j >= 0; j--) { var bullet = bullets[j]; bullet.update(); if (bullet.y < 0) { bullet.destroy(); bullets.splice(j, 1); } } // Update power-ups for (var k = powerUps.length - 1; k >= 0; k--) { var powerUp = powerUps[k]; powerUp.update(); if (powerUp.y > 2732) { powerUp.destroy(); powerUps.splice(k, 1); } } // Check for collisions checkCollisions(); }; // Function to check for collisions function checkCollisions() { // Check bullet and enemy_1 collisions for (var i = bullets.length - 1; i >= 0; i--) { var bullet = bullets[i]; for (var j = enemy_1s.length - 1; j >= 0; j--) { var enemy_1 = enemy_1s[j]; if (bullet.intersects(enemy_1)) { bullet.destroy(); enemy_1.destroy(); bullets.splice(i, 1); enemy_1s.splice(j, 1); // Check if all enemies in the defeated enemy's group are also defeated if (!enemy_1s.some(function (e) { return e.group === enemy_1.group; })) { // If true, spawn a powerup spawnPowerUp(); } break; } } } // Check player and power-up collisions for (var k = powerUps.length - 1; k >= 0; k--) { var powerUp = powerUps[k]; if (player.intersects(powerUp)) { powerUp.destroy(); powerUps.splice(k, 1); // Upgrade player's gun player.shoot = function () { var bullet1 = new Bullet(); bullet1.x = player.x - 20; bullet1.y = player.y - 50; bullets.push(bullet1); game.addChild(bullet1); var bullet2 = new Bullet(); bullet2.x = player.x + 20; bullet2.y = player.y - 50; bullets.push(bullet2); game.addChild(bullet2); }; } } } // Function to spawn enemy_1s function spawnEnemy_1() { var groupX = Math.random() * (2048 - enemy_movemwnt_amplitude * 2) + enemy_movemwnt_amplitude; // Generate a random x position for the group for (var i = 0; i < 6; i++) { var enemy = new enemy_1(); var x = i * Math.PI / 3; // Define x before using it in the sine function enemy.x = groupX + Math.sin(x) * enemy_movemwnt_amplitude; // Assign the group x position to the enemy enemy.y = -50 - i * 200; // Assign a slightly different y position to each enemy enemy.group = enemy_1GroupCount; // Assign the group number to the enemy enemy_1s.push(enemy); game.addChild(enemy); } // Increment enemy_1 group counter enemy_1GroupCount += 1; } // Function to spawn power-ups function spawnPowerUp() { var powerUp = new PowerUp(); powerUp.x = Math.random() * 2048; powerUp.y = -50; powerUps.push(powerUp); game.addChild(powerUp); } // Set intervals for spawning LK.setInterval(spawnEnemy_1, 5000); // Player controls game.down = function (x, y, obj) { player.x = x; player.y = y; }; game.move = function (x, y, obj) { player.x = x; player.y = y; }; game.up = function (x, y, obj) { player.shoot(); };
/****
* Classes
****/
/****
* Variables
****/
// Bullet class
var Bullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = -10;
self.update = function () {
self.y += self.speed;
};
});
// Player class
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
self.shoot = function () {
var bullet = new Bullet();
bullet.x = self.x;
bullet.y = self.y - 50;
bullets.push(bullet);
game.addChild(bullet);
};
});
// PowerUp class
var PowerUp = Container.expand(function () {
var self = Container.call(this);
var powerUpGraphics = self.attachAsset('powerUp', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
self.y += 2;
};
});
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
// enemy_1 class
var enemy_1 = Container.expand(function () {
var self = Container.call(this);
var enemy_1Graphics = self.attachAsset('enemy_a', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 3;
self.update = function () {
self.y += self.speed;
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 //Init game with black background
});
/****
* Game Code
****/
/****
* Variables
****/
// Initialize player
var enemy_movemwnt_amplitude = 400;
var player = game.addChild(new Player());
player.x = 2048 / 2;
player.y = 2500;
// Initialize arrays
var enemy_1s = [];
var bullets = [];
var powerUps = [];
// Initialize enemy_1 group counter
var enemy_1GroupCount = 0;
// Game update function
game.update = function () {
// Update enemy_1s
for (var i = enemy_1s.length - 1; i >= 0; i--) {
var enemy_1 = enemy_1s[i];
enemy_1.update();
if (enemy_1.y > 2732) {
enemy_1.destroy();
enemy_1s.splice(i, 1);
}
}
// Update bullets
for (var j = bullets.length - 1; j >= 0; j--) {
var bullet = bullets[j];
bullet.update();
if (bullet.y < 0) {
bullet.destroy();
bullets.splice(j, 1);
}
}
// Update power-ups
for (var k = powerUps.length - 1; k >= 0; k--) {
var powerUp = powerUps[k];
powerUp.update();
if (powerUp.y > 2732) {
powerUp.destroy();
powerUps.splice(k, 1);
}
}
// Check for collisions
checkCollisions();
};
// Function to check for collisions
function checkCollisions() {
// Check bullet and enemy_1 collisions
for (var i = bullets.length - 1; i >= 0; i--) {
var bullet = bullets[i];
for (var j = enemy_1s.length - 1; j >= 0; j--) {
var enemy_1 = enemy_1s[j];
if (bullet.intersects(enemy_1)) {
bullet.destroy();
enemy_1.destroy();
bullets.splice(i, 1);
enemy_1s.splice(j, 1);
// Check if all enemies in the defeated enemy's group are also defeated
if (!enemy_1s.some(function (e) {
return e.group === enemy_1.group;
})) {
// If true, spawn a powerup
spawnPowerUp();
}
break;
}
}
}
// Check player and power-up collisions
for (var k = powerUps.length - 1; k >= 0; k--) {
var powerUp = powerUps[k];
if (player.intersects(powerUp)) {
powerUp.destroy();
powerUps.splice(k, 1);
// Upgrade player's gun
player.shoot = function () {
var bullet1 = new Bullet();
bullet1.x = player.x - 20;
bullet1.y = player.y - 50;
bullets.push(bullet1);
game.addChild(bullet1);
var bullet2 = new Bullet();
bullet2.x = player.x + 20;
bullet2.y = player.y - 50;
bullets.push(bullet2);
game.addChild(bullet2);
};
}
}
}
// Function to spawn enemy_1s
function spawnEnemy_1() {
var groupX = Math.random() * (2048 - enemy_movemwnt_amplitude * 2) + enemy_movemwnt_amplitude; // Generate a random x position for the group
for (var i = 0; i < 6; i++) {
var enemy = new enemy_1();
var x = i * Math.PI / 3; // Define x before using it in the sine function
enemy.x = groupX + Math.sin(x) * enemy_movemwnt_amplitude; // Assign the group x position to the enemy
enemy.y = -50 - i * 200; // Assign a slightly different y position to each enemy
enemy.group = enemy_1GroupCount; // Assign the group number to the enemy
enemy_1s.push(enemy);
game.addChild(enemy);
}
// Increment enemy_1 group counter
enemy_1GroupCount += 1;
}
// Function to spawn power-ups
function spawnPowerUp() {
var powerUp = new PowerUp();
powerUp.x = Math.random() * 2048;
powerUp.y = -50;
powerUps.push(powerUp);
game.addChild(powerUp);
}
// Set intervals for spawning
LK.setInterval(spawnEnemy_1, 5000);
// Player controls
game.down = function (x, y, obj) {
player.x = x;
player.y = y;
};
game.move = function (x, y, obj) {
player.x = x;
player.y = y;
};
game.up = function (x, y, obj) {
player.shoot();
};
spaceship, retro game, 2d. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
yellow ball. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
game flying saucer. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
star field. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
neon circle with a 'p'. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
fire explosion. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
double sided space ship. symetrical. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows, color, neon
hot stone, red. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
large rock. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows