Code edit (2 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
User prompt
make textline15 below textline14 and make it say: This game is no longer updated.
Code edit (1 edits merged)
Please save this source code
User prompt
remove highscoretxt
User prompt
Fix Bug: 'ReferenceError: highScoreTxt is not defined' in or related to this line: 'highScoreTxt.setText('High Score: ' + highScore + ' (WIP)');' Line Number: 702
User prompt
Fix Bug: 'Uncaught ReferenceError: ScoreTxt is not defined' in or related to this line: 'cosmicCreditsTxt.y = ScoreTxt.y + ScoreTxt.height + 20; // Position below the high score display' Line Number: 578
Code edit (3 edits merged)
Please save this source code
User prompt
Fix Bug: 'Uncaught ReferenceError: highScoreTxt is not defined' in or related to this line: 'highScoreTxt.anchor.set(1, 0);' Line Number: 577
Code edit (1 edits merged)
Please save this source code
User prompt
change versiontxt to: v0.2.2 BETA
User prompt
change "Tap anywhere to shoot" to: "Double tap anywhere to shoot"
User prompt
make it so the user has to double tap to shoot bullet
User prompt
change versiontxt to be v0.21 BETA
User prompt
the bulletpack bounce off the walls then move the other way. Make it more unpredictable and that they don't have to hit the walls to move the other way
User prompt
the enemies bounce off the walls then move the other way. Make it more unpredictable and that they don't have to hit the walls to move the other way
User prompt
make bullet pack rarity 1/5 of enemy rarity
User prompt
the bulletpack asset does not show up when it is meant to
User prompt
why are there no bulletpacks appearing?
User prompt
the bulletpack bounces off the walls then move the other way. Make it more unpredictable and that they don't have to hit the walls to move the other way
User prompt
the enemies bounce off the walls then move the other way. Make it more unpredictable and that they don't have to hit the walls to move the other way
User prompt
save this
/**** * Classes ****/ var HelpMenuBackground = Container.expand(function (positionX, positionY) { var self = Container.call(this); var backgroundGraphics = self.attachAsset('helpMenuBackground', { anchorX: 0.5, anchorY: 0.5 }); // Create and add welcome text to the HelpMenuBackground var textline1 = new Text2('Welcome to Blast through the Cosmos - Your Ultimate Space Adventure!', { size: 60, fill: "#ffffff", font: "Game Over", align: 'center', wordWrap: true, wordWrapWidth: game.width * 0.8 }); textline1.anchor.set(0.5); textline1.x = 0; textline1.y = -800; // Position the text at 0,0 self.addChild(textline1); // Create and add controls text to the HelpMenuBackground var textline2 = new Text2('Controls:', { size: 50, fill: "#ffffff", font: "Game Over", align: 'center' }); textline2.anchor.set(0.5); textline2.x = 0; textline2.y = -650; // Position the text below textline1 self.addChild(textline2); self.x = positionX; var textline3 = new Text2('Move your spaceship: For mouse, the spaceship will follow your cursor. For phone, tap where you want your ship to go.', { size: 70, fill: "#ffffff", font: "Game Over", align: 'center', wordWrap: true, wordWrapWidth: game.width * 0.8 }); textline3.anchor.set(0.5); textline3.x = 0; textline3.y = -500; // Position the text below textline2 self.addChild(textline3); var textline4 = new Text2('Fire bullets: Double Tap anywhere on the screen.', { size: 70, fill: "#ffffff", font: "Game Over", align: 'center', wordWrap: true, wordWrapWidth: game.width * 0.8 }); textline4.anchor.set(0.5); textline4.x = 0; textline4.y = -350; // Position the text below textline3 self.addChild(textline4); var textline5 = new Text2('Objective:', { size: 50, fill: "#ffffff", font: "Game Over", align: 'center', wordWrap: true, wordWrapWidth: game.width * 0.8 }); textline5.anchor.set(0.5); textline5.x = 0; textline5.y = -200; // Position the text below textline4 self.addChild(textline5); var textline6 = new Text2('Destroy the robotic android enemies to increase your score, Cosmic Credits, and replenish your bullets.', { size: 70, fill: "#ffffff", font: "Game Over", align: 'center', wordWrap: true, wordWrapWidth: game.width * 0.8 }); textline6.anchor.set(0.5); textline6.x = 0; textline6.y = -100; // Position the text below textline5 self.addChild(textline6); var textline7 = new Text2('Running out of bullets results in defeat, so keep an eye on your ammo!', { size: 70, fill: "#ffffff", font: "Game Over", align: 'center', wordWrap: true, wordWrapWidth: game.width * 0.8 }); textline7.anchor.set(0.5); textline7.x = 0; textline7.y = 0 + 50; // Position the text below textline6 self.addChild(textline7); var textline8 = new Text2('Game Elements:', { size: 50, fill: "#ffffff", font: "Game Over", align: 'center', wordWrap: true, wordWrapWidth: game.width * 0.8 }); textline8.anchor.set(0.5); textline8.x = 0; textline8.y = textline7.y + 150; // Position the text below textline7 self.addChild(textline8); var textline9 = new Text2('Bullets: Start with 3 bullets. Shoot enemies to gain Cosmic Credits and earn back your bullets. Collect bullet packs to add 5 bullets instantly.', { size: 70, fill: "#ffffff", font: "Game Over", align: 'center', wordWrap: true, wordWrapWidth: game.width * 0.8 }); textline9.anchor.set(0.5); textline9.x = 0; textline9.y = textline8.y + 150; // Position the text below textline8 self.addChild(textline9); var textline10 = new Text2('Cosmic Credits (CC): Use CC to purchase bullets. Spend wisely to survive longer and achieve higher scores.', { size: 70, fill: "#ffffff", font: "Game Over", align: 'center', wordWrap: true, wordWrapWidth: game.width * 0.8 }); textline10.anchor.set(0.5); textline10.x = 0; textline10.y = textline9.y + 200; // Position the text below textline9 self.addChild(textline10); var textline11 = new Text2('Tips for Success:', { size: 50, fill: "#ffffff", font: "Game Over", align: 'center', wordWrap: true, wordWrapWidth: game.width * 0.8 }); textline11.anchor.set(0.5); textline11.x = 0; textline11.y = textline10.y + 150; // Position the text below textline10 self.addChild(textline11); var textline12 = new Text2('Prioritize enemies strategically to maximize your score and rewards.', { size: 70, fill: "#ffffff", font: "Game Over", align: 'center', wordWrap: true, wordWrapWidth: game.width * 0.8 }); textline12.anchor.set(0.5); textline12.x = 0; textline12.y = textline11.y + 100; // Position the text below textline11 self.addChild(textline12); var textline13 = new Text2('Master your spaceship\'s movements to navigate through challenging obstacles.', { size: 70, fill: "#ffffff", font: "Game Over", align: 'center', wordWrap: true, wordWrapWidth: game.width * 0.8 }); textline13.anchor.set(0.5); textline13.x = 0; textline13.y = textline12.y + 150; // Position the text below textline12 self.addChild(textline13); var textline14 = new Text2('Save up Cosmic Credits for crucial upgrades as you progress.', { size: 70, fill: "#ffffff", font: "Game Over", align: 'center', wordWrap: true, wordWrapWidth: game.width * 0.8 }); textline14.anchor.set(0.5); textline14.x = 0; textline14.y = textline13.y + 175; // Position the text below textline13 self.addChild(textline14); var textline15 = new Text2('This game is no longer updated.', { size: 45, fill: "#ffffff", font: "Game Over", align: 'center', wordWrap: true, wordWrapWidth: game.width * 0.8 }); textline15.anchor.set(0.5); textline15.x = 0; textline15.y = textline14.y + 150; // Position the text below textline14 self.addChild(textline15); self.y = positionY; }); var RestartButton = Container.expand(function (positionX, positionY) { var self = Container.call(this); var buttonGraphics = self.attachAsset('restartButton', { anchorX: 0.5, anchorY: 0.5 }); var restartText = new Text2('Restart', { size: 150, fill: "#ffffff", font: "Game Over" }); restartText.anchor.set(0.5); self.addChild(restartText); self.x = positionX; self.y = positionY; self.interactive = true; self.on('down', function (obj) { self.alpha = 0.5; }); self.on('up', function (obj) { self.alpha = 1.0; LK.showGameOver(); }); }); var ResumeButton = Container.expand(function (positionX, positionY) { var self = Container.call(this); var buttonGraphics = self.attachAsset('resume', { anchorX: 0.5, anchorY: 0.5 }); // Create and add the resume text to the button var resumeText = new Text2('Resume', { size: 150, fill: "#ffffff", font: "Game Over" }); resumeText.anchor.set(0.5); self.addChild(resumeText); self.x = positionX; self.y = positionY; self.interactive = true; self.on('down', function (obj) { self.alpha = 0.5; }); self.on('up', function (obj) { self.alpha = 1.0; isGamePaused = false; bulletAddedOnPause = false; pauseButton.interactive = true; // Re-enable the pause button self.destroy(); pauseMenuBackground.destroy(); restartButton.destroy(); settingsButton.destroy(); }); }); var PurchaseButtonWithText = Container.expand(function (buttonAssetId, buttonText, buttonSubText, positionX, positionY, onClickCallback) { var self = Container.call(this); var button = self.attachAsset('purchase1', { anchorX: 0.5, anchorY: 0.5 }); var text = new Text2(buttonText, { size: 45, fill: "#ffffff", font: "Game Over" }); var subText = new Text2(buttonSubText, { size: 45, fill: "#ffffff", font: "Game Over" }); text.anchor.set(0.5, 1); subText.anchor.set(0.5, 0); text.y = -button.height / 2 - 10; subText.y = button.height / 2 + 10; self.addChild(text); self.addChild(subText); self.x = positionX; self.y = positionY; self.interactive = true; self.on('down', function (obj) { self.alpha = 0.5; onClickCallback(); }); self.on('up', function (obj) { self.alpha = 1.0; }); }); // BulletPack class var BulletPack = Container.expand(function () { var self = Container.call(this); var bulletPackGraphics = self.attachAsset('bulletPack', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 4; self.direction = Math.random() < 0.5 ? -1 : 1; self.move = function () { var speedIncreaseFactor = 0.1 + LK.ticks * 0.0002; self.y += self.speed + speedIncreaseFactor; // Randomly change direction with a 10% chance each tick if (Math.random() < 0.1) { self.direction *= -1; } self.x += self.direction * (10 + speedIncreaseFactor); // Keep BulletPack within game bounds if (self.x < 0) { self.x = 0; self.direction *= -1; } if (self.x > game.width) { self.x = game.width; self.direction *= -1; } }; }); // Character class var Hero = Container.expand(function () { var self = Container.call(this); var heroGraphics = self.attachAsset('hero', { anchorX: 0.5, anchorY: 0.5 }); self.bulletLimit = 3; // Initialize bullet limit self.canShoot = true; // Allow shooting initially self.update = function () { // Hero update logic }; self.shoot = function () { if (this.bulletLimit > 0 && this.canShoot && !isGamePaused) { var bullet = new Bullet(); bullet.x = this.x; bullet.y = this.y - this.height / 2; heroBullets.push(bullet); game.addChild(bullet); this.bulletLimit--; bulletCountTxt.setText('Bullets: ' + this.bulletLimit); // Update bullet count display this.canShoot = false; // Set shooting cooldown LK.setTimeout(function () { self.canShoot = true; }, 500); // Cooldown of 500ms before next shot } }; }); // Bullet class var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('Bullet', { anchorX: 0.0625, anchorY: 0.0625 }); self.speed = -10; self.move = function () { self.y += self.speed; }; }); // Enemy class var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 4; self.direction = Math.random() < 0.5 ? -1 : 1; self.move = function () { self.y += self.speed; var speedIncreaseFactor = 0.1 + LK.ticks * 0.0002; // Increase the speed factor over time self.x += self.direction * (4 + speedIncreaseFactor); // Randomly change direction with a 5% chance each tick if (Math.random() < 0.05 || self.x < 0 || self.x > game.width) { self.direction *= -1; } // Keep enemy within game bounds if (self.x < 0) { self.x = 0; } if (self.x > game.width) { self.x = game.width; } self.speed += 0.02 + LK.ticks * 0.0001; // Increase speed over time with an accelerating factor }; }); var Button = Container.expand(function (text, positionX, positionY, onClickCallback) { var self = Container.call(this); var buttonText = new Text2(text, { size: 200, fill: "#ffffff" }); buttonText.anchor.set(0.5); self.addChild(buttonText); self.x = positionX; self.y = positionY; self.interactive = true; self.on('down', function (obj) { self.alpha = 0.5; onClickCallback(); }); self.on('up', function (obj) { self.alpha = 1.0; }); }); // JoystickAsset class var JoystickAsset = Container.expand(function () { var self = Container.call(this); self.interactive = true; self.isDragging = false; self.onMoveCallback = null; self.setMoveCallback = function (callback) { self.onMoveCallback = function (direction) { callback({ x: direction.x, y: 0 }); }; }; self.on('down', function (obj) { self.isDragging = true; }); self.on('up', function (obj) { self.isDragging = false; stickGraphics.x = stickOrigin.x; stickGraphics.y = stickOrigin.y; if (self.onMoveCallback) { self.onMoveCallback({ x: 0, y: 0 }); } }); self.on('move', function (obj) { if (self.isDragging) { var event = obj.event; var pos = event.getLocalPosition(self); var dx = pos.x - stickOrigin.x; var maxDistance = stickGraphics.width * 0.5; if (Math.abs(dx) > maxDistance) { dx = maxDistance * (dx > 0 ? 1 : -1); } stickGraphics.x = stickOrigin.x + dx; stickGraphics.y = stickOrigin.y; if (self.onMoveCallback) { self.onMoveCallback({ x: dx / maxDistance, y: 0 }); } } }); self.containsPoint = function (point) { return point.x >= self.x - self.width / 2 && point.x <= self.x + self.width / 2 && point.y >= self.y - self.height / 2 && point.y <= self.y + self.height / 2; }; }); var SettingsButton = Container.expand(function (positionX, positionY) { var self = Container.call(this); var buttonGraphics = self.attachAsset('help', { anchorX: 0.5, anchorY: 0.5 }); // Create and add the settings text to the button var settingsText = new Text2('Help', { size: 150, fill: "#ffffff", font: "Game Over" }); settingsText.anchor.set(0.5); self.addChild(settingsText); self.x = positionX; self.y = positionY; self.interactive = true; self.on('down', function (obj) { self.alpha = 0.5; }); self.on('up', function (obj) { self.alpha = 1.0; var settingsMenuOpen = false; var helpMenuBackground = game.addChild(new HelpMenuBackground(game.width / 2, game.height / 2)); settingsMenuOpen = true; // Add 'exit' asset to the settings menu var exitButton = helpMenuBackground.addChild(LK.getAsset('exit', { anchorX: 0.5, anchorY: 0.5, x: game.width / 2 - 1000, // Move 100 pixels to the left y: -1250 })); exitButton.interactive = true; exitButton.on('down', function () { exitButton.alpha = 0.5; }); exitButton.on('up', function () { exitButton.alpha = 1.0; helpMenuBackground.destroy(); // Close help menu settingsMenuOpen = false; }); }); }); /**** * Initialize Game ****/ var game = new LK.Game({ title: 'gameplaypage' }); /**** * Game Code ****/ var backgrounds = ['gameBackground', 'gamebackground2', 'gamebackground3', 'gamebackground4', 'gamebackground5', 'gamebackground6', 'gamebackground7', 'gamebackground8', 'gamebackground9', 'gamebackground10']; var selectedBackground = backgrounds[Math.floor(Math.random() * backgrounds.length)]; var background = game.addChild(LK.getAsset(selectedBackground, { width: game.width, height: game.height, x: game.width / 2, y: game.height / 2, anchorX: 0.5, anchorY: 0.5 })); var pauseMenuBackground, resumeButton, restartButton, settingsButton; function showPauseMenu() { if (isGamePaused) { pauseMenuBackground = game.addChild(LK.getAsset('pauseMenuBackground', { width: game.width, height: game.height, color: 0x000000, alpha: 0.5 })); resumeButton = game.addChild(new ResumeButton(game.width / 2, game.height / 2 - 750)); restartButton = game.addChild(new RestartButton(game.width / 2, game.height / 2 + 250)); settingsButton = game.addChild(new SettingsButton(game.width / 2, game.height / 2 - 250)); } } var isGamePaused = false, settingsMenuOpen = false; // Global variables to track the pause state of the game and settings menu state var Purchase1 = game.addChild(new PurchaseButtonWithText('purchase1', '10 Bullets for:', '50 Cosmic Credits', 200, game.height - 200, function () { if (cosmicCredits >= 50) { cosmicCredits -= 50; hero.bulletLimit += 10; bulletCountTxt.setText('Bullets: ' + hero.bulletLimit); cosmicCreditsTxt.setText('Cosmic Credits: ' + cosmicCredits); } })); Purchase1.interactive = true; Purchase1.on('down', function () { Purchase1.alpha = 0.5; if (cosmicCredits >= 50) { cosmicCredits -= 50; hero.bulletLimit += 10; bulletCountTxt.setText('Bullets: ' + hero.bulletLimit); cosmicCreditsTxt.setText('Cosmic Credits: ' + cosmicCredits); } }); Purchase1.on('up', function () { Purchase1.alpha = 1.0; }); var purchase2 = game.addChild(new PurchaseButtonWithText('purchase2', '20 Bullets for:', '75 Cosmic Credits', game.width - 200, game.height - 200, function () { if (cosmicCredits >= 75) { cosmicCredits -= 75; hero.bulletLimit += 20; bulletCountTxt.setText('Bullets: ' + hero.bulletLimit); cosmicCreditsTxt.setText('Cosmic Credits: ' + cosmicCredits); } })); purchase2.interactive = true; purchase2.on('down', function () { purchase2.alpha = 0.5; if (cosmicCredits >= 75) { cosmicCredits -= 75; hero.bulletLimit += 20; bulletCountTxt.setText('Bullets: ' + hero.bulletLimit); cosmicCreditsTxt.setText('Cosmic Credits: ' + cosmicCredits); } }); purchase2.on('up', function () { purchase2.alpha = 1.0; }); // Initialize important asset arrays var heroBullets = []; var enemies = []; // Create character var hero = game.addChild(new Hero()); hero.x = game.width / 2; hero.y = game.height - 100; var cosmicCredits = 0; // Initialize cosmic credits // Create score display var scoreTxt = new Text2('Score: 0', { size: 50, fill: "#ffffff", font: "Game Over" }); var cosmicCreditsTxt = new Text2('Cosmic Credits: 0', { size: 50, fill: "#ffffff", font: "Game Over" }); // New currency display scoreTxt.anchor.set(1, 0); cosmicCreditsTxt.anchor.set(1, 0); cosmicCreditsTxt.y = scoreTxt.y + scoreTxt.height + 20; // Position below the score display LK.gui.topRight.addChild(scoreTxt); LK.gui.topRight.addChild(cosmicCreditsTxt); // Add the cosmic credits display to the GUI // Create version display var versionTxt = new Text2('v0.3.0 BETA', { size: 50, fill: "#ffffff", font: "Game Over" }); versionTxt.anchor.set(1, 0); versionTxt.y = cosmicCreditsTxt.y + cosmicCreditsTxt.height + 20; // Position below the cosmic credits display LK.gui.topRight.addChild(versionTxt); // Add the version display to the GUI // Create bullet count display var bulletCountTxt = new Text2('Bullets: 3', { size: 100, fill: "#ffffff", font: "Game Over" }); bulletCountTxt.anchor.set(0, 0); bulletCountTxt.y = scoreTxt.height + 50; // Position below the score display LK.gui.topLeft.addChild(bulletCountTxt); // Create instructions display var instructionsTxt = new Text2('Double tap anywhere to shoot', { size: 50, fill: "#ffffff", font: "Game Over" }); instructionsTxt.anchor.set(0, 0); LK.gui.topLeft.addChild(instructionsTxt); // Pause button event listener var pauseButton = game.addChild(LK.getAsset('pause', { x: 1000 })); pauseButton.interactive = true; var bulletAddedOnPause = false; pauseButton.on('down', function () { if (!isGamePaused && !settingsMenuOpen) { isGamePaused = true; pauseButton.interactive = false; // Disable the pause button // Make the bullet closest to the hero null var closestBullet = null; var closestDistance = Infinity; heroBullets.forEach(function (bullet) { var distance = hero.y - bullet.y; if (distance >= 0 && distance < closestDistance) { closestDistance = distance; closestBullet = bullet; } }); if (closestBullet) { closestBullet.destroy(); heroBullets.splice(heroBullets.indexOf(closestBullet), 1); } showPauseMenu(); } }); // Create a red line 3/4 down the screen var redLine = LK.getAsset('redLine', {}); redLine.width = game.width; redLine.height = 5; redLine.y = game.height * 0.75; game.addChild(redLine); // Create joystick instance var joystick = new JoystickAsset(); joystick.x = joystick.width / 2 + 150; joystick.y = game.height - joystick.height / 2 - 150; joystick.setMoveCallback(function (direction) { hero.x = Math.max(hero.width / 2, Math.min(game.width - hero.width / 2, hero.x + direction.x * 10)); }); game.addChild(joystick); // Handle tap on the game stage to shoot bullets, excluding buttons var dragNode = null; var lastTapTime = 0; game.on('down', function (obj) { var currentTime = Date.now(); var event = obj.event; var pos = event.getLocalPosition(game); // Check if the tap is not on any button or the pause button var purchaseButtonBoundsLeft = Purchase1.getBounds(); var purchaseButtonBoundsRight = purchase2.getBounds(); var pauseButtonBounds = pauseButton.getBounds(); if (!(pos.x >= purchaseButtonBoundsLeft.x && pos.x <= purchaseButtonBoundsLeft.x + purchaseButtonBoundsLeft.width && pos.y >= purchaseButtonBoundsLeft.y && pos.y <= purchaseButtonBoundsLeft.y + purchaseButtonBoundsLeft.height || pos.x >= purchaseButtonBoundsRight.x && pos.x <= purchaseButtonBoundsRight.x + purchaseButtonBoundsRight.width && pos.y >= purchaseButtonBoundsRight.y && pos.y <= purchaseButtonBoundsRight.y + purchaseButtonBoundsRight.height || pos.x >= pauseButtonBounds.x && pos.x <= pauseButtonBounds.x + pauseButtonBounds.width && pos.y >= pauseButtonBounds.y && pos.y <= pauseButtonBounds.y + pauseButtonBounds.height) && !joystick.containsPoint(pos)) { if (currentTime - lastTapTime < 300) { hero.shoot(); } lastTapTime = currentTime; } }); game.on('move', function (obj) { if (isGamePaused) { return; } var event = obj.event; var pos = event.getLocalPosition(game); hero.x = pos.x; // hero.y = pos.y; // Removed the line that sets the hero's y position }); // Game tick event LK.on('tick', function () { if (isGamePaused || settingsMenuOpen) { return; } // Stop updating if game is paused or settings menu is open // Update character hero.update(); // Move and check bullets for (var i = heroBullets.length - 1; i >= 0; i--) { var bullet = heroBullets[i]; bullet.move(); // Check for bullet collision with enemies and bullet packs for (var j = enemies.length - 1; j >= 0; j--) { if (bullet.intersects(enemies[j])) { if (enemies[j] instanceof BulletPack) { // If the enemy is a bullet pack // Increment character's bullet limit by 5 hero.bulletLimit += 5; } else { // If the enemy is an actual enemy // Update score and increase cosmic credits by 5 var newScore = LK.getScore() + 1; LK.setScore(newScore); scoreTxt.setText('Score: ' + newScore); cosmicCredits += 5; cosmicCreditsTxt.setText('Cosmic Credits: ' + cosmicCredits); if (typeof localStorage !== 'undefined' && newScore > highScore) { localStorage.setItem('highScore', newScore.toString()); } // Increment character's bullet limit hero.bulletLimit++; } bulletCountTxt.setText('Bullets: ' + hero.bulletLimit); // Update bullet count display // Destroy enemy/bullet pack and bullet enemies[j].destroy(); enemies.splice(j, 1); bullet.destroy(); heroBullets.splice(i, 1); break; } } // Remove off-screen bullets and end the game if it's the last one if (bullet.y < 0) { bullet.destroy(); heroBullets.splice(i, 1); if (heroBullets.length === 0 && hero.bulletLimit === 0) { LK.showGameOver(); // End the game when the last bullet is out of frame } } } // Move enemies and check if they pass the red line for (var k = enemies.length - 1; k >= 0; k--) { enemies[k].move(); if (enemies[k].y > game.height * 0.75) { enemies[k].destroy(); enemies[k] = null; enemies.splice(k, 1); } } var enemySpawnRate = 60; // Initialize enemy spawn rate // Spawn enemies and bullet packs if (LK.ticks % enemySpawnRate == 0) { var enemy = new Enemy(); enemy.x = Math.random() * (game.width - enemy.width) + enemy.width / 2; enemy.y = -enemy.height; enemies.push(enemy); game.addChild(enemy); if (enemySpawnRate > 30) { enemySpawnRate -= 0.5; } // Decrease spawn rate over time to a minimum of 30 ticks } if (LK.ticks % 600 == 0) { // Spawn a bullet pack every 600 ticks var bulletPack = new BulletPack(); bulletPack.x = Math.random() * (game.width - bulletPack.width) + bulletPack.width / 2; bulletPack.y = -bulletPack.height; enemies.push(bulletPack); // Add bullet pack to enemies array for collision detection game.addChild(bulletPack); } });
===================================================================
--- original.js
+++ change.js
@@ -173,12 +173,12 @@
wordWrapWidth: game.width * 0.8
});
textline14.anchor.set(0.5);
textline14.x = 0;
- textline14.y = textline13.y + 150; // Position the text below textline13
+ textline14.y = textline13.y + 175; // Position the text below textline13
self.addChild(textline14);
var textline15 = new Text2('This game is no longer updated.', {
- size: 30,
+ size: 45,
fill: "#ffffff",
font: "Game Over",
align: 'center',
wordWrap: true,
android. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
letter X png. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
space background. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
galaxy background. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
galaxy background. High quality
space background.. High contrast