User prompt
Se o player não ficar na borda, consegue, sem tocar na borda, ponto. Se tocar na borda, perde esses pontos.
User prompt
Começa com que as balas estejam com o dobro de velocidade após 200 pontos.
User prompt
Coloque menos na borda da tela.
User prompt
Coloque menos.
User prompt
Está muito difícil ver eles. Coloque eles menos na borda da tela, aí fica mais fácil ver.
User prompt
Adicione os ícones de coração no topo da tela direita.
User prompt
Após chegar a 100 pontos, o jogo avisa que as balas aceleram de velocidade e as balas realmente aceleram de velocidade.
User prompt
Faça com que, se a bala cair e os pontos contam, os pontos só contam se o quadrado spawnar.
User prompt
Se cada bala cair para o lado de baixo, consegue um ponto.
User prompt
Coloque a variável de pontos.
User prompt
O som do pronto está muito atrasado, desde mais cedo.
User prompt
Ready:ready sound
User prompt
Adicione o som BEEP no WARE que é pronto também.
User prompt
Ready? Set:beep sound. Go!:go sound
User prompt
Crie um "ready? Set go!"
User prompt
Crie um, ueiri, sete, gol.
User prompt
Quando o cubo tocar em uma bala, perde uma vida e a bala sume.
User prompt
Adicione a variável de pontos.
/**** * Classes ****/ var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; // Bullet movement speed // Update method called every game tick self.update = function () { self.y += self.speed; }; }); // EnemyBullet class representing the enemy's bullets var EnemyBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; // Bullet movement speed self.direction = 'down'; // Bullet direction // Update method called every game tick self.update = function () { if (self.direction === 'down') { self.y += self.speed; } }; }); var Menu = Container.expand(function () { var self = Container.call(this); var menuGraphics = self.attachAsset('Cube_bullet_hell_icon', { anchorX: 0.5, anchorY: 0.5 }); // Create a start button var startButton = self.attachAsset('Start_button', { anchorX: 0.5, anchorY: 0.5, scaleX: 2, // Increase size horizontally scaleY: 2 // Increase size vertically }); startButton.y = 500; // Position further below the icon self.addChild(startButton); // Add event listener for the start button startButton.down = function () { self.visible = false; // Hide the menu game.startGame(); // Start the game }; }); //<Assets used in the game will automatically appear here> //<Write imports for supported plugins here> // Player class representing 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 = 10; // Player movement speed self.lives = 3; // Player lives // Method to move the player self.move = function (x, y) { self.x = x; self.y = y; }; // Method to shoot a bullet self.shoot = function () { var bulletUp = new PlayerBullet(); bulletUp.x = self.x; bulletUp.y = self.y; bulletUp.direction = 'up'; game.addChild(bulletUp); playerBullets.push(bulletUp); var bulletDown = new PlayerBullet(); bulletDown.x = self.x; bulletDown.y = self.y; bulletDown.direction = 'down'; game.addChild(bulletDown); playerBullets.push(bulletDown); var bulletLeft = new PlayerBullet(); bulletLeft.x = self.x; bulletLeft.y = self.y; bulletLeft.direction = 'left'; game.addChild(bulletLeft); playerBullets.push(bulletLeft); var bulletRight = new PlayerBullet(); bulletRight.x = self.x; bulletRight.y = self.y; bulletRight.direction = 'right'; game.addChild(bulletRight); playerBullets.push(bulletRight); var bulletUpLeft = new PlayerBullet(); bulletUpLeft.x = self.x; bulletUpLeft.y = self.y; bulletUpLeft.direction = 'up-left'; game.addChild(bulletUpLeft); playerBullets.push(bulletUpLeft); var bulletUpRight = new PlayerBullet(); bulletUpRight.x = self.x; bulletUpRight.y = self.y; bulletUpRight.direction = 'up-right'; game.addChild(bulletUpRight); playerBullets.push(bulletUpRight); var bulletDownLeft = new PlayerBullet(); bulletDownLeft.x = self.x; bulletDownLeft.y = self.y; bulletDownLeft.direction = 'down-left'; game.addChild(bulletDownLeft); playerBullets.push(bulletDownLeft); var bulletDownRight = new PlayerBullet(); bulletDownRight.x = self.x; bulletDownRight.y = self.y; bulletDownRight.direction = 'down-right'; game.addChild(bulletDownRight); playerBullets.push(bulletDownRight); }; }); // PlayerBullet class representing the player's bullets var PlayerBullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -5; // Bullet movement speed self.direction = 'up'; // Bullet direction // Update method called every game tick self.update = function () { if (self.direction === 'up') { self.y += self.speed; } else if (self.direction === 'down') { self.y -= self.speed; } else if (self.direction === 'left') { self.x -= self.speed; } else if (self.direction === 'right') { self.x += self.speed; } else if (self.direction === 'up-left') { self.y += self.speed; self.x -= self.speed; } else if (self.direction === 'up-right') { self.y += self.speed; self.x += self.speed; } else if (self.direction === 'down-left') { self.y -= self.speed; self.x -= self.speed; } else if (self.direction === 'down-right') { self.y -= self.speed; self.x += self.speed; } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 //Init game with black background }); /**** * Game Code ****/ // Function to update heart icons based on player lives function updateHearts() { // Clear existing hearts LK.gui.topRight.removeChildren(); // Add heart icons based on the number of lives for (var i = 0; i < player.lives; i++) { var heartIcon = LK.getAsset('Heart_icon', { anchorX: 0.5, anchorY: 0.5 }); heartIcon.x = -50 * i; // Position hearts with some spacing LK.gui.topRight.addChild(heartIcon); } } var menu = new Menu(); menu.x = 2048 / 2; menu.y = 2732 / 2; game.addChild(menu); // Define player in the global scope var player; // Function to start the game game.startGame = function () { // Display "Ready? Set Go!" sequence var readyText = new Text2('Ready?', { size: 200, fill: 0xFFFFFF }); readyText.anchor.set(0.5, 0.5); readyText.x = 2048 / 2; readyText.y = 2732 / 2; game.addChild(readyText); LK.getSound('Ready').play(); // Moved here to play immediately LK.setTimeout(function () { readyText.setText('Set'); LK.getSound('Beep').play(); LK.setTimeout(function () { readyText.setText('Go!'); LK.getSound('Go').play(); LK.setTimeout(function () { game.removeChild(readyText); // Initialize player player = new Player(); player.x = 2048 / 2; player.y = 2732 - 200; game.addChild(player); updateHearts(); // Display hearts when the game starts }, 1000); }, 1000); }, 1000); }; // Variable to track player's score var playerScore = 0; var scoreTxt = new Text2('Score: 0', { size: 100, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); var bullets = []; var playerBullets = []; var enemyBullets = []; // Function to spawn bullets function spawnBullet() { var bullet = new EnemyBullet(); bullet.x = Math.random() * (2048 - 400) + 200; bullet.y = -50; // Start above the screen enemyBullets.push(bullet); game.addChild(bullet); } // Game update function game.update = function () { // Update bullets for (var i = bullets.length - 1; i >= 0; i--) { var bullet = bullets[i]; bullet.update(); // Check if bullet is off-screen if (bullet.y > 2732) { bullet.destroy(); bullets.splice(i, 1); playerScore += 1; // Increase score by 1 scoreTxt.setText('Score: ' + playerScore); // Update score display } // Check for collision with player if (bullet.intersects(player)) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } } // Spawn a new bullet every 30 ticks // Update player bullets for (var i = playerBullets.length - 1; i >= 0; i--) { var bullet = playerBullets[i]; bullet.update(); // Check if bullet is off-screen if (bullet.y < 0 || bullet.y > 2732 || bullet.x < 0 || bullet.x > 2048) { bullet.destroy(); playerBullets.splice(i, 1); } } // Update enemy bullets for (var i = enemyBullets.length - 1; i >= 0; i--) { var bullet = enemyBullets[i]; bullet.update(); // Check if bullet is off-screen if (bullet.y > 2732) { if (playerScore >= 100 && playerScore < 200) { bullet.speed += 2; // Increase bullet speed } else if (playerScore >= 200) { bullet.speed += 5; // Double bullet speed after 200 points } bullet.destroy(); enemyBullets.splice(i, 1); if (player) { // Ensure player has spawned playerScore += 1; // Increase score by 1 scoreTxt.setText('Score: ' + playerScore); // Update score display if (playerScore === 100) { var speedUpText = new Text2('Bullets Speed Up!', { size: 150, fill: 0xFF0000 }); speedUpText.anchor.set(0.5, 0.5); speedUpText.x = 2048 / 2; speedUpText.y = 2732 / 2; game.addChild(speedUpText); LK.setTimeout(function () { game.removeChild(speedUpText); }, 2000); } } } // Check for collision with player if (bullet.intersects(player)) { LK.effects.flashScreen(0xff0000, 1000); player.lives -= 1; LK.getSound('Hit').play(); bullet.destroy(); // Remove the bullet upon collision enemyBullets.splice(i, 1); // Remove bullet from array updateHearts(); // Update hearts when player loses a life if (player.lives <= 0) { LK.showGameOver(); } } } // Spawn a new enemy bullet every 10 ticks if (LK.ticks % 10 === 0) { spawnBullet(); } }; // Handle player movement game.move = function (x, y, obj) { if (player) { player.move(x, y); // Check if player is touching the screen border var touchingBorder = player.x <= 0 || player.x >= 2048 || player.y <= 0 || player.y >= 2732; // If player is touching the border, reset score if (touchingBorder) { playerScore = 0; scoreTxt.setText('Score: ' + playerScore); } } }; game.down = function (x, y, obj) { // player.shoot(); };
===================================================================
--- original.js
+++ change.js
@@ -316,8 +316,15 @@
// Handle player movement
game.move = function (x, y, obj) {
if (player) {
player.move(x, y);
+ // Check if player is touching the screen border
+ var touchingBorder = player.x <= 0 || player.x >= 2048 || player.y <= 0 || player.y >= 2732;
+ // If player is touching the border, reset score
+ if (touchingBorder) {
+ playerScore = 0;
+ scoreTxt.setText('Score: ' + playerScore);
+ }
}
};
game.down = function (x, y, obj) {
// player.shoot();
Cube. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
Cube bullet hell icon. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Start_button. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
Heart_icon. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows