User prompt
Score 1 point every enemy destroyed
User prompt
Create sound when enemy is destroyed
User prompt
Create sound effect when bullet is fired
User prompt
Bullets can kill bombs
User prompt
Allow enemy to drop bombs
User prompt
No points added when enemy passes you
User prompt
Add explosion sound when bullet hits enemy
User prompt
Make an explosion effect when bullet hits enemy
User prompt
Make enemies move faster every 20 points scored
User prompt
Speed background up every 50 pts
User prompt
Can we make the bullets fire from the cannon on the tank
User prompt
Move player back a little bit
User prompt
Fire bullets in direction of touch
User prompt
Touch screen to fire bullets
User prompt
No jumping
User prompt
Bullets fire up and right
User prompt
Score increase by 1 when bullet hits enemy
User prompt
Speed up background
User prompt
Make player jumps higher
User prompt
Enemies only in top half of screen
User prompt
Add more enemies every 10 points. Enemies can fly
User prompt
Create steady moving background that is stretched
User prompt
Activate moving background on loop ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Create moving background effect to make player seem to be moving forward ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Touch screen to shoot bullet
/****
* 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();
enemies.splice(j, 1);
scoreText.setText(LK.getScore());
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);
}; ===================================================================
--- original.js
+++ change.js
@@ -147,18 +147,15 @@
x: enemies[j].x,
y: enemies[j].y
});
game.addChild(explosion);
- // Play explosion sound
- LK.getSound('Explosion').play();
// Remove explosion after a short delay
LK.setTimeout(function () {
explosion.destroy();
}, 500);
game.children[i].destroy();
enemies[j].destroy();
enemies.splice(j, 1);
- LK.setScore(LK.getScore() + 1);
scoreText.setText(LK.getScore());
break;
}
}
🔥 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