User prompt
Why fail
User prompt
Reset bullet code
User prompt
Uh
User prompt
Cancel last request
User prompt
Add fire rate upgrade button that spends 5 coins
User prompt
Frenzy button cooldown for 25s
User prompt
Frenzy mode only lasts 10s
User prompt
Move frenzy button a bit left
User prompt
Move frenzy button to right
User prompt
Put frenzy button in mid but a bit bottom right
User prompt
Add frenzy button that activate frenzy mode, frenzy mode: fire rate increase, enemy spawn rate increase
User prompt
Remove the score increase when collrcting coin
User prompt
Fix Bug: 'ReferenceError: frenzyButton is not defined' in this line: 'frenzyButton.frenzyActive = false;' Line Number: 107
User prompt
Remove frenzy button codes
User prompt
Reset frenzy button
User prompt
Make frenzy button increase fire rate and enemy spawn rate
User prompt
More down pls
User prompt
Move frenzy button to more down
User prompt
Move frenzy button to left
User prompt
Reset hero position
User prompt
Nevermind
User prompt
Mid bottom
User prompt
Mid but down part
User prompt
Put back hero to mid
User prompt
Nvm
/**** * Classes ****/ // Hero class var Hero = Container.expand(function () { var self = Container.call(this); var heroGraphics = self.createAsset('hero', 'Hero character', 0.5, 0.5); self.shoot = function () { // Shooting logic will be implemented in the game logic section }; self.update = function () { // Update logic for the hero, if needed }; }); // Bullet class var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.createAsset('bullet', 'Hero Bullet', 0.5, 0.5); self.speed = -10; self.move = function () { self.y += self.speed; }; }); // Coin class var Coin = Container.expand(function () { var self = Container.call(this); var coinGraphics = self.createAsset('coin', 'Coin', 0.5, 0.5); self.value = 1; self.speed = 5; self.move = function () { self.y += self.speed; }; self.collect = function () { // Collection logic will be implemented in the game logic section }; }); // Enemy class var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.createAsset('enemy', 'Enemy character', 0.5, 0.5); self.speed = 2; self.move = function () { self.y += self.speed; }; }); // CoinsDisplay class var CoinsDisplay = Container.expand(function () { var self = Container.call(this); var coinsText = new Text2('Coins: 0', { size: 100, fill: "#ffd700" }); coinsText.anchor.set(0.5, 0); self.addChild(coinsText); self.updateCoins = function (totalCoins) { coinsText.setText('Coins: ' + totalCoins.toString()); }; }); // FrenzyButton class var FrenzyButton = Container.expand(function () { var self = Container.call(this); var frenzyButtonGraphics = self.createAsset('frenzyButton', 'Frenzy Button', 0.5, 0.5); self.frenzyActive = false; self.toggleFrenzy = function () { self.frenzyActive = !self.frenzyActive; }; }); /**** * Initialize Game ****/ // Create frenzy button instance var game = new LK.Game({ backgroundColor: 0xFFFFFF //Init game with white background }); /**** * Game Code ****/ // Initialize important asset arrays, score, and coins var bullets = []; var enemies = []; var coins = []; // Array to store coin instances var totalCoins = 0; // Initialize total coins collected to 0 var score = 0; // Initialize score to 0 // Create score display var scoreTxt = new Text2(score.toString(), { size: 150, fill: "#000000" }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Create coins display instance var coinsDisplay = new CoinsDisplay(); coinsDisplay.scale.set(0.5, 0.5); LK.gui.top.addChild(coinsDisplay); coinsDisplay.y = scoreTxt.height; // Create frenzy button instance var frenzyButton = new FrenzyButton(); frenzyButton.scale.set(0.5, 0.5); LK.gui.topRight.addChild(frenzyButton); frenzyButton.y = scoreTxt.height; frenzyButton.x = 2048 - frenzyButton.width / 2; // Create hero instance var hero = game.addChild(new Hero()); hero.x = 100; hero.y = 2732 - 100; // Position hero near the bottom of the screen // Game tick event LK.on('tick', function () { // Move bullets for (var i = bullets.length - 1; i >= 0; i--) { bullets[i].move(); if (bullets[i].y < 0) { bullets[i].destroy(); bullets.splice(i, 1); } } // Move enemies for (var j = enemies.length - 1; j >= 0; j--) { enemies[j].move(); if (enemies[j].y > 2732) { LK.showGameOver(); } } // Check for bullet-enemy collisions for (var b = bullets.length - 1; b >= 0; b--) { for (var e = enemies.length - 1; e >= 0; e--) { if (bullets[b].intersects(enemies[e])) { // Increase score and update display score++; scoreTxt.setText(score.toString()); bullets[b].destroy(); bullets.splice(b, 1); // Spawn a coin when an enemy is destroyed if (coins.length < 10) { var newCoin = new Coin(); newCoin.x = enemies[e].x; newCoin.y = enemies[e].y; coins.push(newCoin); game.addChild(newCoin); } enemies[e].destroy(); enemies.splice(e, 1); break; } } } // Move and collect coins for (var c = coins.length - 1; c >= 0; c--) { coins[c].move(); if (hero.intersects(coins[c])) { // Increment total coins collected totalCoins += coins[c].value; // Update the total coins display coinsDisplay.updateCoins(totalCoins); // Increase score and update display score++; scoreTxt.setText(score.toString()); coins[c].destroy(); coins.splice(c, 1); } else if (coins[c].y > 2732) { // Remove coins that have moved off screen coins[c].destroy(); coins.splice(c, 1); } } // Spawn enemies if (LK.ticks % (frenzyButton.frenzyActive ? 60 : 120) == 0) { var newEnemy = new Enemy(); newEnemy.x = Math.random() * 2048; newEnemy.y = -50; enemies.push(newEnemy); game.addChild(newEnemy); } // Hero shooting if (LK.ticks % (frenzyButton.frenzyActive ? 15 : 30) == 0) { var newBullet = new Bullet(); newBullet.x = hero.x; newBullet.y = hero.y; bullets.push(newBullet); game.addChild(newBullet); } // Update hero hero.update(); }); // Touch event to move hero game.on('down', function (obj) { var pos = obj.event.getLocalPosition(game); hero.x = pos.x; if (frenzyButton.intersects(obj.event)) { frenzyButton.toggleFrenzy(); } }); // Ensure the game is touchscreen compatible game.on('move', function (obj) { if (obj.event.data && obj.event.data.originalEvent.touches && obj.event.data.originalEvent.touches.length > 0) { var touch = obj.event.data.originalEvent.touches[0]; var pos = game.toLocal(new Point(touch.clientX, touch.clientY)); hero.x = pos.x; } });
/****
* Classes
****/
// Hero class
var Hero = Container.expand(function () {
var self = Container.call(this);
var heroGraphics = self.createAsset('hero', 'Hero character', 0.5, 0.5);
self.shoot = function () {
// Shooting logic will be implemented in the game logic section
};
self.update = function () {
// Update logic for the hero, if needed
};
});
// Bullet class
var Bullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.createAsset('bullet', 'Hero Bullet', 0.5, 0.5);
self.speed = -10;
self.move = function () {
self.y += self.speed;
};
});
// Coin class
var Coin = Container.expand(function () {
var self = Container.call(this);
var coinGraphics = self.createAsset('coin', 'Coin', 0.5, 0.5);
self.value = 1;
self.speed = 5;
self.move = function () {
self.y += self.speed;
};
self.collect = function () {
// Collection logic will be implemented in the game logic section
};
});
// Enemy class
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.createAsset('enemy', 'Enemy character', 0.5, 0.5);
self.speed = 2;
self.move = function () {
self.y += self.speed;
};
});
// CoinsDisplay class
var CoinsDisplay = Container.expand(function () {
var self = Container.call(this);
var coinsText = new Text2('Coins: 0', {
size: 100,
fill: "#ffd700"
});
coinsText.anchor.set(0.5, 0);
self.addChild(coinsText);
self.updateCoins = function (totalCoins) {
coinsText.setText('Coins: ' + totalCoins.toString());
};
});
// FrenzyButton class
var FrenzyButton = Container.expand(function () {
var self = Container.call(this);
var frenzyButtonGraphics = self.createAsset('frenzyButton', 'Frenzy Button', 0.5, 0.5);
self.frenzyActive = false;
self.toggleFrenzy = function () {
self.frenzyActive = !self.frenzyActive;
};
});
/****
* Initialize Game
****/
// Create frenzy button instance
var game = new LK.Game({
backgroundColor: 0xFFFFFF //Init game with white background
});
/****
* Game Code
****/
// Initialize important asset arrays, score, and coins
var bullets = [];
var enemies = [];
var coins = []; // Array to store coin instances
var totalCoins = 0; // Initialize total coins collected to 0
var score = 0; // Initialize score to 0
// Create score display
var scoreTxt = new Text2(score.toString(), {
size: 150,
fill: "#000000"
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Create coins display instance
var coinsDisplay = new CoinsDisplay();
coinsDisplay.scale.set(0.5, 0.5);
LK.gui.top.addChild(coinsDisplay);
coinsDisplay.y = scoreTxt.height;
// Create frenzy button instance
var frenzyButton = new FrenzyButton();
frenzyButton.scale.set(0.5, 0.5);
LK.gui.topRight.addChild(frenzyButton);
frenzyButton.y = scoreTxt.height;
frenzyButton.x = 2048 - frenzyButton.width / 2;
// Create hero instance
var hero = game.addChild(new Hero());
hero.x = 100;
hero.y = 2732 - 100; // Position hero near the bottom of the screen
// Game tick event
LK.on('tick', function () {
// Move bullets
for (var i = bullets.length - 1; i >= 0; i--) {
bullets[i].move();
if (bullets[i].y < 0) {
bullets[i].destroy();
bullets.splice(i, 1);
}
}
// Move enemies
for (var j = enemies.length - 1; j >= 0; j--) {
enemies[j].move();
if (enemies[j].y > 2732) {
LK.showGameOver();
}
}
// Check for bullet-enemy collisions
for (var b = bullets.length - 1; b >= 0; b--) {
for (var e = enemies.length - 1; e >= 0; e--) {
if (bullets[b].intersects(enemies[e])) {
// Increase score and update display
score++;
scoreTxt.setText(score.toString());
bullets[b].destroy();
bullets.splice(b, 1);
// Spawn a coin when an enemy is destroyed
if (coins.length < 10) {
var newCoin = new Coin();
newCoin.x = enemies[e].x;
newCoin.y = enemies[e].y;
coins.push(newCoin);
game.addChild(newCoin);
}
enemies[e].destroy();
enemies.splice(e, 1);
break;
}
}
}
// Move and collect coins
for (var c = coins.length - 1; c >= 0; c--) {
coins[c].move();
if (hero.intersects(coins[c])) {
// Increment total coins collected
totalCoins += coins[c].value;
// Update the total coins display
coinsDisplay.updateCoins(totalCoins);
// Increase score and update display
score++;
scoreTxt.setText(score.toString());
coins[c].destroy();
coins.splice(c, 1);
} else if (coins[c].y > 2732) {
// Remove coins that have moved off screen
coins[c].destroy();
coins.splice(c, 1);
}
}
// Spawn enemies
if (LK.ticks % (frenzyButton.frenzyActive ? 60 : 120) == 0) {
var newEnemy = new Enemy();
newEnemy.x = Math.random() * 2048;
newEnemy.y = -50;
enemies.push(newEnemy);
game.addChild(newEnemy);
}
// Hero shooting
if (LK.ticks % (frenzyButton.frenzyActive ? 15 : 30) == 0) {
var newBullet = new Bullet();
newBullet.x = hero.x;
newBullet.y = hero.y;
bullets.push(newBullet);
game.addChild(newBullet);
}
// Update hero
hero.update();
});
// Touch event to move hero
game.on('down', function (obj) {
var pos = obj.event.getLocalPosition(game);
hero.x = pos.x;
if (frenzyButton.intersects(obj.event)) {
frenzyButton.toggleFrenzy();
}
});
// Ensure the game is touchscreen compatible
game.on('move', function (obj) {
if (obj.event.data && obj.event.data.originalEvent.touches && obj.event.data.originalEvent.touches.length > 0) {
var touch = obj.event.data.originalEvent.touches[0];
var pos = game.toLocal(new Point(touch.clientX, touch.clientY));
hero.x = pos.x;
}
});
Coin. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Fighter jet. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Has rocket behind to boost movement to down faster
Explosion. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Medkit. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.