User prompt
make a gun upgrade that allows you to shoot 2 bullets at once
User prompt
make a boss spawn after 50 targets are destroyed
User prompt
make it that when the targets make it to the bottom of the screen you die
User prompt
make the targets take 2 bullets to be destroyed
User prompt
make it spawn targets every second
Code edit (14 edits merged)
Please save this source code
User prompt
make the game spawn more targets
User prompt
make it spawn more targets rapidly
Initial prompt
Please save this source code
/****
* Classes
****/
// Boss
var Boss = Container.expand(function () {
var self = Container.call(this);
var bossGraphics = self.attachAsset('boss', {
anchorX: 0.5,
anchorY: 0.5
});
self.hitPoints = 10; // Boss takes 10 hits to be destroyed
self.update = function () {
if (LK.ticks % 60 == 0) {
self.y += 40; // Boss moves slower than regular targets
}
};
});
// Assets will be automatically created and loaded by the LK engine based on usage in the game code.
// Player's Bullet
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;
if (self.y < 0) {
self.destroy();
}
};
});
// Target
var Target = Container.expand(function () {
var self = Container.call(this);
var targetGraphics = self.attachAsset('target', {
anchorX: 0.5,
anchorY: 0.5
});
self.hitPoints = 2; // Add hitPoints property
self.update = function () {
if (LK.ticks % 60 == 0) {
self.y += 80;
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 // Initialize game with a black background
});
/****
* Game Code
****/
var bullets = [];
var targets = [];
var score = 0;
// Create a target at a random position
function spawnTarget() {
var target = new Target();
target.x = Math.random() * 2048;
target.y = 0;
game.addChild(target);
targets.push(target);
}
// Check for bullet collisions with targets
function checkCollisions() {
bullets.forEach(function (bullet, bulletIndex) {
targets.forEach(function (target, targetIndex) {
if (bullet.intersects(target)) {
bullet.destroy();
bullets.splice(bulletIndex, 1);
target.hitPoints -= 1; // Decrease target's hitPoints
if (target.hitPoints <= 0) {
target.destroy();
targets.splice(targetIndex, 1);
score += 1;
if (target instanceof Boss) {
score += 49; // Destroying a boss counts as 50 targets
}
}
LK.effects.flashObject(target, 0xff0000, 500); // Flash target red on hit
}
});
});
}
// Shoot a bullet from the bottom center of the screen
function shoot(x, y) {
var bullet = new Bullet();
bullet.x = x;
bullet.y = 2732; // Start from the bottom of the screen
game.addChild(bullet);
bullets.push(bullet);
}
// Game update function
game.update = function () {
if (LK.ticks % 30 == 0) {
// Spawn a target every second
spawnTarget();
// Spawn a boss every 50 targets destroyed
if (score % 50 == 0 && score > 0) {
var boss = new Boss();
boss.x = Math.random() * 2048;
boss.y = 0;
game.addChild(boss);
targets.push(boss);
}
}
checkCollisions();
targets.forEach(function (target, targetIndex) {
if (target.y >= 2732) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
});
};
// Touch event to shoot
game.down = function (x, y, obj) {
shoot(x, y);
};
// Initialize a few targets
for (var i = 10; i < 10; i++) {
spawnTarget();
} ===================================================================
--- original.js
+++ change.js
@@ -1,7 +1,21 @@
/****
* Classes
****/
+// Boss
+var Boss = Container.expand(function () {
+ var self = Container.call(this);
+ var bossGraphics = self.attachAsset('boss', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.hitPoints = 10; // Boss takes 10 hits to be destroyed
+ self.update = function () {
+ if (LK.ticks % 60 == 0) {
+ self.y += 40; // Boss moves slower than regular targets
+ }
+ };
+});
// Assets will be automatically created and loaded by the LK engine based on usage in the game code.
// Player's Bullet
var Bullet = Container.expand(function () {
var self = Container.call(this);
@@ -64,8 +78,11 @@
if (target.hitPoints <= 0) {
target.destroy();
targets.splice(targetIndex, 1);
score += 1;
+ if (target instanceof Boss) {
+ score += 49; // Destroying a boss counts as 50 targets
+ }
}
LK.effects.flashObject(target, 0xff0000, 500); // Flash target red on hit
}
});
@@ -83,8 +100,16 @@
game.update = function () {
if (LK.ticks % 30 == 0) {
// Spawn a target every second
spawnTarget();
+ // Spawn a boss every 50 targets destroyed
+ if (score % 50 == 0 && score > 0) {
+ var boss = new Boss();
+ boss.x = Math.random() * 2048;
+ boss.y = 0;
+ game.addChild(boss);
+ targets.push(boss);
+ }
}
checkCollisions();
targets.forEach(function (target, targetIndex) {
if (target.y >= 2732) {