User prompt
Make enemy2 fly in small circles
User prompt
Make enemy fly erratically
User prompt
Please fix the bug: 'TypeError: LK.ParticleSystem is not a constructor' in or related to this line: 'var explosion = new LK.ParticleSystem({' Line Number: 182
User prompt
Fix explosion lag
User prompt
Add score text next to level
User prompt
Centre level text at top of screen
User prompt
Please fix the bug: 'Cannot set properties of undefined (setting 'fontWeight')' in or related to this line: 'levelText.style.fontWeight = 'bold'; // Make the text bold' Line Number: 139
User prompt
Centre level text and make it bold
User prompt
Please fix the bug: 'Cannot set properties of undefined (setting 'fontWeight')' in or related to this line: 'levelText.style.fontWeight = 'bold';' Line Number: 138
User prompt
Centre level text and make font bold and black
User prompt
Please fix the bug: 'Cannot set properties of undefined (setting 'font')' in or related to this line: 'levelText.style.font = "bold 100px 'Comic Sans MS'";' Line Number: 138
User prompt
Centre level text an make font bold Comic sans
User prompt
Move level text to top right corner of screen
User prompt
Move pause button
User prompt
Move level text to bottom of screen
User prompt
Move level text away from pause button
User prompt
Move level text to middle of top of screen
User prompt
Level up when enemy changes. Create text at top of screen to show level
User prompt
Change to enemy3 after 10 enemy2 is killed
User prompt
Add different sound effect when enemy2 is destroyed
User prompt
Make enemy2 move erratically
User prompt
Change enemy every 10 points
User prompt
No points added when enemy flies over
User prompt
Fix scoring system only 1 point per kill
User prompt
Only score points for explosion
/**** * Classes ****/ // Define a class for bullets 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.x += self.speedX; self.y += self.speedY; if (self.x > 2048 + 50 || self.y < -50) { self.destroy(); } }; }); // Define a class for enemies var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5 + Math.floor(LK.getScore() / 20); self.update = function () { self.x -= self.speed; if (self.x < -50) { self.destroy(); } }; }); // Define a class for a steady moving background var MovingBackground = Container.expand(function () { var self = Container.call(this); var bg1 = self.attachAsset('background', { anchorX: 0, anchorY: 0 }); var bg2 = self.attachAsset('background2', { anchorX: 0, anchorY: 0 }); bg1.x = 0; bg2.x = 2048; // Position the second background right after the first one self.speed = 4 + Math.floor(LK.getScore() / 50); self.update = function () { bg1.x -= self.speed; bg2.x -= self.speed; // Reset positions to create a continuous loop if (bg1.x <= -2048) { bg1.x = bg2.x + 2048; } if (bg2.x <= -2048) { bg2.x = bg1.x + 2048; } }; }); //<Assets used in the game will automatically appear here> // Define a class for the player character var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.jumpHeight = 40; self.update = function () {}; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB // Sky blue background }); /**** * Game Code ****/ var movingBackground = game.addChild(new MovingBackground()); // Initialize player var player = game.addChild(new Player()); player.x = 2048 / 2 - 100; // Move player back a little bit player.y = 2732 / 2; // Initialize enemies var enemies = []; var enemySpawnInterval = 100; var enemySpawnCounter = 0; // Create a new Text2 object to display the score var scoreText = new Text2('0', { size: 100, fill: 0xFFFFFF }); // Add the score text to the game GUI at the top center of the screen LK.gui.top.addChild(scoreText); scoreText.x = 2048 / 2; scoreText.y = 0; // Handle game updates game.update = function () { player.update(); movingBackground.update(); // Spawn enemies enemySpawnCounter++; if (enemySpawnCounter >= enemySpawnInterval) { // Add more enemies every 10 points if (LK.getScore() % 10 === 0 && LK.getScore() !== 0) { for (var i = 0; i < 2; i++) { // Add two enemies var extraEnemy = new Enemy(); extraEnemy.x = 2048; extraEnemy.y = Math.random() * (2732 / 2); // Randomize Y position in the top half enemies.push(extraEnemy); game.addChild(extraEnemy); } } var enemy = new Enemy(); enemy.x = 2048; enemy.y = Math.random() * (2732 / 2); // Randomize Y position in the top half to allow flying enemies.push(enemy); game.addChild(enemy); // Randomize the spawn interval for the next enemy enemySpawnInterval = Math.floor(Math.random() * 150) + 50; enemySpawnCounter = 0; } // Update enemies for (var j = enemies.length - 1; j >= 0; j--) { enemies[j].update(); if (player.intersects(enemies[j])) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } else if (player.x > enemies[j].x && !enemies[j].passed) { enemies[j].passed = true; LK.setScore(LK.getScore() + 1); scoreText.setText(LK.getScore()); } // Check for bullet collision with enemies for (var i = game.children.length - 1; i >= 0; i--) { if (game.children[i] instanceof Bullet && game.children[i].intersects(enemies[j])) { // Create explosion effect var explosion = LK.getAsset('fire', { anchorX: 0.5, anchorY: 0.5, x: enemies[j].x, y: enemies[j].y }); game.addChild(explosion); // Remove explosion after a short delay LK.setTimeout(function () { explosion.destroy(); }, 500); game.children[i].destroy(); enemies[j].destroy(); LK.getSound('enemy_destroyed').play(); scoreText.setText(LK.getScore()); enemies.splice(j, 1); break; } } } }; // Handle player jump game.down = function (x, y, obj) { var newBullet = new Bullet(); var angle = Math.atan2(y - player.y, x - player.x); newBullet.x = player.x + player.width / 2; // Adjust the bullet's initial x position to the cannon's position newBullet.y = player.y; // Adjust the bullet's initial y position to the cannon's position newBullet.speedX = Math.cos(angle) * newBullet.speed; newBullet.speedY = Math.sin(angle) * newBullet.speed; game.addChild(newBullet); LK.getSound('shoot').play(); };
/****
* Classes
****/
// Define a class for bullets
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.x += self.speedX;
self.y += self.speedY;
if (self.x > 2048 + 50 || self.y < -50) {
self.destroy();
}
};
});
// Define a class for enemies
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5 + Math.floor(LK.getScore() / 20);
self.update = function () {
self.x -= self.speed;
if (self.x < -50) {
self.destroy();
}
};
});
// Define a class for a steady moving background
var MovingBackground = Container.expand(function () {
var self = Container.call(this);
var bg1 = self.attachAsset('background', {
anchorX: 0,
anchorY: 0
});
var bg2 = self.attachAsset('background2', {
anchorX: 0,
anchorY: 0
});
bg1.x = 0;
bg2.x = 2048; // Position the second background right after the first one
self.speed = 4 + Math.floor(LK.getScore() / 50);
self.update = function () {
bg1.x -= self.speed;
bg2.x -= self.speed;
// Reset positions to create a continuous loop
if (bg1.x <= -2048) {
bg1.x = bg2.x + 2048;
}
if (bg2.x <= -2048) {
bg2.x = bg1.x + 2048;
}
};
});
//<Assets used in the game will automatically appear here>
// Define a class for the player character
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.jumpHeight = 40;
self.update = function () {};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87CEEB // Sky blue background
});
/****
* Game Code
****/
var movingBackground = game.addChild(new MovingBackground());
// Initialize player
var player = game.addChild(new Player());
player.x = 2048 / 2 - 100; // Move player back a little bit
player.y = 2732 / 2;
// Initialize enemies
var enemies = [];
var enemySpawnInterval = 100;
var enemySpawnCounter = 0;
// Create a new Text2 object to display the score
var scoreText = new Text2('0', {
size: 100,
fill: 0xFFFFFF
});
// Add the score text to the game GUI at the top center of the screen
LK.gui.top.addChild(scoreText);
scoreText.x = 2048 / 2;
scoreText.y = 0;
// Handle game updates
game.update = function () {
player.update();
movingBackground.update();
// Spawn enemies
enemySpawnCounter++;
if (enemySpawnCounter >= enemySpawnInterval) {
// Add more enemies every 10 points
if (LK.getScore() % 10 === 0 && LK.getScore() !== 0) {
for (var i = 0; i < 2; i++) {
// Add two enemies
var extraEnemy = new Enemy();
extraEnemy.x = 2048;
extraEnemy.y = Math.random() * (2732 / 2); // Randomize Y position in the top half
enemies.push(extraEnemy);
game.addChild(extraEnemy);
}
}
var enemy = new Enemy();
enemy.x = 2048;
enemy.y = Math.random() * (2732 / 2); // Randomize Y position in the top half to allow flying
enemies.push(enemy);
game.addChild(enemy);
// Randomize the spawn interval for the next enemy
enemySpawnInterval = Math.floor(Math.random() * 150) + 50;
enemySpawnCounter = 0;
}
// Update enemies
for (var j = enemies.length - 1; j >= 0; j--) {
enemies[j].update();
if (player.intersects(enemies[j])) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
} else if (player.x > enemies[j].x && !enemies[j].passed) {
enemies[j].passed = true;
LK.setScore(LK.getScore() + 1);
scoreText.setText(LK.getScore());
}
// Check for bullet collision with enemies
for (var i = game.children.length - 1; i >= 0; i--) {
if (game.children[i] instanceof Bullet && game.children[i].intersects(enemies[j])) {
// Create explosion effect
var explosion = LK.getAsset('fire', {
anchorX: 0.5,
anchorY: 0.5,
x: enemies[j].x,
y: enemies[j].y
});
game.addChild(explosion);
// Remove explosion after a short delay
LK.setTimeout(function () {
explosion.destroy();
}, 500);
game.children[i].destroy();
enemies[j].destroy();
LK.getSound('enemy_destroyed').play();
scoreText.setText(LK.getScore());
enemies.splice(j, 1);
break;
}
}
}
};
// Handle player jump
game.down = function (x, y, obj) {
var newBullet = new Bullet();
var angle = Math.atan2(y - player.y, x - player.x);
newBullet.x = player.x + player.width / 2; // Adjust the bullet's initial x position to the cannon's position
newBullet.y = player.y; // Adjust the bullet's initial y position to the cannon's position
newBullet.speedX = Math.cos(angle) * newBullet.speed;
newBullet.speedY = Math.sin(angle) * newBullet.speed;
game.addChild(newBullet);
LK.getSound('shoot').play();
};
🔥 fire. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
Mario driving a tank. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
Wario flying an aeroplane. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
Waluigi flying a helicopter. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows