User prompt
Fix Bug: 'Uncaught TypeError: LK.initGame is not a function' in or related to this line: 'LK.initGame({' Line Number: 187
User prompt
Fix Bug: 'Uncaught TypeError: LK.init is not a function' in or related to this line: 'LK.init({' Line Number: 187
Code edit (1 edits merged)
Please save this source code
User prompt
Fix Bug: 'Uncaught TypeError: LK.Point is not a constructor' in or related to this line: 'self.anchor = new LK.Point();' Line Number: 94
User prompt
Fix Bug: 'Uncaught TypeError: Point is not a constructor' in or related to this line: 'self.anchor = new Point();' Line Number: 94
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'set')' in or related to this line: 'difficultyButton.anchor.set(0.5, 0.5);' Line Number: 204
User prompt
Fix Bug: 'Uncaught TypeError: Point is not a constructor' in or related to this line: 'buttonText.anchor = new Point(0.5, 0.5);' Line Number: 89
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'set')' in or related to this line: 'difficultyButton.anchor.set(0.5, 0.5);' Line Number: 204
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'set')' in or related to this line: 'difficultyButton.anchor.set(0.5, 0.5);' Line Number: 203
User prompt
Fix Bug: 'ReferenceError: difficultyText is not defined' in or related to this line: 'var difficultyButton = new Button(difficultyText, container.width / 2, titleText.height + 50, function () {' Line Number: 381
User prompt
Fix Bug: 'ReferenceError: container is not defined' in or related to this line: 'container.addChild(titleText);' Line Number: 379
User prompt
Fix Bug: 'TypeError: game.clearChildren is not a function' in or related to this line: 'game.clearChildren();' Line Number: 199
User prompt
Fix Bug: 'TypeError: game.removeAllChildren is not a function' in or related to this line: 'game.removeAllChildren();' Line Number: 199
User prompt
Fix Bug: 'TypeError: game.clearChildren is not a function' in or related to this line: 'game.clearChildren();' Line Number: 199
User prompt
Fix Bug: 'Uncaught TypeError: LK.hideLoader is not a function' in or related to this line: 'LK.hideLoader();' Line Number: 403
User prompt
Fix Bug: 'Uncaught TypeError: LK.showMenuPage is not a function' in or related to this line: 'LK.showMenuPage(easyMenuPage);' Line Number: 401
User prompt
Fix Bug: 'Uncaught TypeError: LK.hideMenuPage is not a function' in or related to this line: 'LK.hideMenuPage(container);' Line Number: 209
User prompt
Fix Bug: 'Uncaught TypeError: LK.hideMenuPage is not a function' in or related to this line: 'LK.hideMenuPage(container);' Line Number: 209
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'set')' in or related to this line: 'difficultyButton.anchor.set(0.5, 0);' Line Number: 203
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'set')' in or related to this line: 'difficultyButton.anchor.set(0.5, 0);' Line Number: 201
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'set')' in or related to this line: 'difficultyButton.anchor.set(0.5, 0);' Line Number: 202
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'set')' in or related to this line: 'this.anchor.set(0.5, 0.5);' Line Number: 89
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'set')' in or related to this line: 'difficultyButton.anchor.set(0.5, 0);' Line Number: 201
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'set')' in or related to this line: 'difficultyButton.anchor.set(0.5, 0);' Line Number: 201
User prompt
Fix Bug: 'Uncaught ReferenceError: createMenuPage is not defined' in or related to this line: 'createMenuPage(self, 'Easy', 'easy', '#00ff00');' Line Number: 159
/**** * Classes ****/ // 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; self.x += self.direction * (10 + speedIncreaseFactor); if (self.x < 0 || 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 = difficulty === 'medium' ? 3 : 5; // Initialize bullet limit based on difficulty self.bulletsInPlay = 0; // Track bullets currently in play self.canShoot = true; // Allow shooting initially self.update = function () { // Hero update logic }; self.shoot = function () { if (this.bulletLimit > 0 && this.canShoot) { var bullet = new Bullet(); bullet.x = this.x; bullet.y = this.y - this.height / 2; heroBullets.push(bullet); game.addChild(bullet); this.bulletsInPlay++; // Increment bullets in play 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); if (self.x < 0 || self.x > game.width) { self.direction *= -1; } self.speed += difficulty === 'easy' ? 0.01 + LK.ticks * 0.00005 : difficulty === 'medium' ? 0.02 + LK.ticks * 0.0001 : 0.03 + LK.ticks * 0.00015; // Increase speed over time with an accelerating factor based on difficulty }; }); 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, 0.5); self.addChild(buttonText); self.x = positionX; self.y = positionY; self.interactive = true; self.on('down', function (obj) { var event = obj.event; var pos = event.getLocalPosition(game); if (self.containsPoint(pos)) { self.alpha = 0.5; onClickCallback(); } }); self.on('up', function (obj) { self.alpha = 1.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; }; }); // 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 }); } } }); }); var EasyMenuPage = Container.expand(function () { var self = Container.call(this); createMenuPage(self, 'Easy', 'easy', '#00ff00'); }); var MediumMenuPage = Container.expand(function () { var self = Container.call(this); createMenuPage(self, 'Medium', 'medium', '#ffff00'); }); var HardMenuPage = Container.expand(function () { var self = Container.call(this); createMenuPage(self, 'Hard', 'hard', '#ff0000'); }); /**** * Initialize Game ****/ // Default difficulty setting var game = new LK.Game({ title: '(WIP)', backgroundColor: 0x000000 // Init game with black background }); /**** * Game Code ****/ var heroBullets = []; var bulletPacks = []; // Declare bulletPacks array in the global scope var bulletCountTxt; // Declare bulletCountTxt in the global scope function createMenuPage(container, difficultyText, difficultyLevel, color) { // Create title text var titleText = new Text2('Select Difficulty', { size: 100, fill: "#ffffff" }); titleText.anchor.set(0.5, 0); container.addChild(titleText); // Create difficulty button var difficultyButton = new Button(difficultyText, container.width / 2, titleText.height + 50, function () { // Set difficulty and start the game difficulty = difficultyLevel; game.clearChildren(); initializeGame(); LK.hideMenuPage(container); }); difficultyButton.anchor.set(0.5, 0); container.addChild(difficultyButton); // Set background color container.backgroundColor = color; // Hide the page initially LK.hideMenuPage(container); } function initializeGame() { // Initialize important asset arrays var enemies = []; // Create character var hero = game.addChild(new Hero()); hero.x = game.width / 2; hero.y = game.height - 100; // Create score display var scoreTxt = new Text2('Score: 0', { size: 50, fill: "#ffffff" }); var highScoreTxt = new Text2('High Score: 0 (WIP)', { size: 50, fill: "#ffffff" }); scoreTxt.anchor.set(1, 0); highScoreTxt.anchor.set(1, 0); highScoreTxt.y = scoreTxt.height + 20; LK.gui.topRight.addChild(scoreTxt); LK.gui.topRight.addChild(highScoreTxt); // Create bullet count display bulletCountTxt = new Text2('Bullets: ' + (difficulty === 'medium' ? 3 : 5), { size: 100, fill: "#ffffff" }); 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('Tap anywhere to shoot', { size: 50, fill: "#ffffff" }); instructionsTxt.anchor.set(0, 0); LK.gui.topLeft.addChild(instructionsTxt); // 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 hero dragging var dragNode = null; game.on('down', function (obj) { hero.shoot(); }); game.on('move', function (obj) { var event = obj.event; var pos = event.getLocalPosition(game); hero.x = pos.x; }); // Global event listener for shooting bullets // Game tick event LK.on('tick', function () { // 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 for (var j = enemies.length - 1; j >= 0; j--) { if (bullet.intersects(enemies[j])) { // Update score var newScore = LK.getScore() + 1; LK.setScore(newScore); scoreTxt.setText('Score: ' + newScore); var highScore = Math.max(newScore, Number((typeof localStorage !== 'undefined' ? localStorage.getItem('highScore') : '0') || '0')); highScoreTxt.setText('High Score: ' + highScore + ' (WIP)'); if (typeof localStorage !== 'undefined') { localStorage.setItem('highScore', highScore); } // Increment character's bullet limit hero.bulletLimit++; bulletCountTxt.setText('Bullets: ' + hero.bulletLimit); // Update bullet count display // Destroy enemy and bullet enemies[j].destroy(); enemies.splice(j, 1); bullet.destroy(); heroBullets.splice(i, 1); break; } } // Check for bullet collision with bullet packs for (var k = bulletPacks.length - 1; k >= 0; k--) { if (bullet.intersects(bulletPacks[k])) { // Increment character's bullet limit by 5 hero.bulletLimit += 5; bulletCountTxt.setText('Bullets: ' + hero.bulletLimit); // Update bullet count display // Destroy bullet pack and bullet bulletPacks[k].destroy(); bulletPacks.splice(k, 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 and check enemies for (var i = enemies.length - 1; i >= 0; i--) { var enemy = enemies[i]; enemy.move(); // Check for collision with the hero if (hero.intersects(enemy)) { LK.showGameOver(); return; // Stop processing further updates if there's a collision with the hero } // Remove off-screen enemies if (enemy.y > game.height) { enemy.destroy(); enemies.splice(i, 1); } } // Move and check bullet packs for (var i = bulletPacks.length - 1; i >= 0; i--) { var bulletPack = bulletPacks[i]; bulletPack.move(); // Remove off-screen bullet packs if (bulletPack.y > game.height) { bulletPack.destroy(); bulletPacks.splice(i, 1); } } // Spawn enemies randomly if (Math.random() < 0.02) { var enemy = new Enemy(); enemy.x = Math.random() * game.width; enemy.y = -100; enemies.push(enemy); game.addChild(enemy); } }); // Spawn bullet packs randomly if (Math.random() < 0.01) { var bulletPack = new BulletPack(); bulletPack.x = Math.random() * game.width; bulletPack.y = -100; bulletPacks.push(bulletPack); game.addChild(bulletPack); } // End of 'tick' event listener // End of initializeGame function function createMenuPage(container, difficultyText, difficultyLevel, color) { // ... (previous code) } // Create title text var titleText = new Text2('Select Difficulty', { size: 100, fill: "#ffffff" }); titleText.anchor.set(0.5, 0); container.addChild(titleText); // Create difficulty button var difficultyButton = new Button(difficultyText, container.width / 2, titleText.height + 50, function () { // Set difficulty and start the game difficulty = difficultyLevel; game.clearChildren(); initializeGame(); LK.hideMenuPage(container); }); difficultyButton.anchor.set(0.5, 0); container.addChild(difficultyButton); // Set background color container.backgroundColor = color; // Hide the page initially LK.hideMenuPage(container); } // Initial setup var difficulty = null; // Show menu pages var easyMenuPage = new EasyMenuPage(); var mediumMenuPage = new MediumMenuPage(); var hardMenuPage = new HardMenuPage(); LK.showMenuPage(easyMenuPage); // Hide loader LK.hideLoader();
===================================================================
--- original.js
+++ change.js
@@ -86,9 +86,8 @@
size: 200,
fill: "#ffffff"
});
buttonText.anchor.set(0.5, 0.5);
- buttonText.anchor.set(0.5, 0);
self.addChild(buttonText);
self.x = positionX;
self.y = positionY;
self.interactive = 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