User prompt
Please fix the bug: 'Timeout.tick error: undefined is not an object (evaluating 'labelText.style.fill = "#ffffff"')' in or related to this line: 'labelText.style.fill = "#ffffff";' Line Number: 237
Code edit (1 edits merged)
Please save this source code
User prompt
Where's Ginger? Hidden Object Adventure
Initial prompt
Toca hide and seek (2014-2018). Have you seen ginger š±. Have you seen her in level 1 safari, level 2 train, level 3 snow, level 4 kids bedroom, or level 5 banana land. Tap on a level to get started, tap on ginger š± when you spot her.
/**** * Plugins ****/ var storage = LK.import("@upit/storage.v1", { unlockedLevel: 1 }); var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var GameLevel = Container.expand(function (levelNumber) { var self = Container.call(this); self.levelNumber = levelNumber; self.gingerFound = false; var backgroundAsset = ''; var gingerX = 0; var gingerY = 0; switch (levelNumber) { case 1: // Safari backgroundAsset = 'safariBackground'; gingerX = 400 + Math.random() * 800; gingerY = 600 + Math.random() * 800; break; case 2: // Train backgroundAsset = 'trainBackground'; gingerX = 500 + Math.random() * 700; gingerY = 700 + Math.random() * 600; break; case 3: // Snow backgroundAsset = 'snowBackground'; gingerX = 600 + Math.random() * 600; gingerY = 800 + Math.random() * 500; break; case 4: // Kids Bedroom backgroundAsset = 'bedroomBackground'; gingerX = 700 + Math.random() * 500; gingerY = 900 + Math.random() * 400; break; case 5: // Banana Land backgroundAsset = 'bananaBackground'; gingerX = 800 + Math.random() * 400; gingerY = 1000 + Math.random() * 300; break; } var background = self.attachAsset(backgroundAsset, { anchorX: 0, anchorY: 0 }); self.createSceneObjects = function () { if (levelNumber === 1) { // Safari for (var i = 0; i < 8; i++) { var tree = self.addChild(LK.getAsset('tree', { anchorX: 0.5, anchorY: 1 })); tree.x = 200 + Math.random() * 1600; tree.y = 400 + Math.random() * 1800; } for (var i = 0; i < 12; i++) { var rock = self.addChild(LK.getAsset('rock', { anchorX: 0.5, anchorY: 0.5 })); rock.x = 100 + Math.random() * 1800; rock.y = 300 + Math.random() * 2000; } for (var i = 0; i < 10; i++) { var bush = self.addChild(LK.getAsset('bush', { anchorX: 0.5, anchorY: 0.5 })); bush.x = 150 + Math.random() * 1700; bush.y = 400 + Math.random() * 1900; } } else if (levelNumber === 2) { // Train for (var i = 0; i < 6; i++) { var trainCar = self.addChild(LK.getAsset('trainCar', { anchorX: 0.5, anchorY: 0.5 })); trainCar.x = 300 + i * 250; trainCar.y = 800 + Math.random() * 400; var wheel1 = self.addChild(LK.getAsset('wheel', { anchorX: 0.5, anchorY: 0.5 })); wheel1.x = trainCar.x - 60; wheel1.y = trainCar.y + 70; var wheel2 = self.addChild(LK.getAsset('wheel', { anchorX: 0.5, anchorY: 0.5 })); wheel2.x = trainCar.x + 60; wheel2.y = trainCar.y + 70; } } else if (levelNumber === 3) { // Snow for (var i = 0; i < 8; i++) { var snowman = self.addChild(LK.getAsset('snowman', { anchorX: 0.5, anchorY: 1 })); snowman.x = 200 + Math.random() * 1600; snowman.y = 500 + Math.random() * 1800; } for (var i = 0; i < 15; i++) { var rock = self.addChild(LK.getAsset('rock', { anchorX: 0.5, anchorY: 0.5 })); rock.x = 100 + Math.random() * 1800; rock.y = 400 + Math.random() * 2000; } } else if (levelNumber === 4) { // Kids Bedroom for (var i = 0; i < 4; i++) { var bed = self.addChild(LK.getAsset('bed', { anchorX: 0.5, anchorY: 0.5 })); bed.x = 300 + i * 400; bed.y = 600 + Math.random() * 800; } for (var i = 0; i < 20; i++) { var toy = self.addChild(LK.getAsset('toy', { anchorX: 0.5, anchorY: 0.5 })); toy.x = 150 + Math.random() * 1700; toy.y = 400 + Math.random() * 2000; } } else if (levelNumber === 5) { // Banana Land for (var i = 0; i < 50; i++) { var banana = self.addChild(LK.getAsset('banana', { anchorX: 0.5, anchorY: 0.5 })); banana.x = 100 + Math.random() * 1800; banana.y = 300 + Math.random() * 2100; } } }; self.createSceneObjects(); var gingerSprite = self.addChild(LK.getAsset('ginger', { anchorX: 0.5, anchorY: 0.5 })); gingerSprite.x = gingerX; gingerSprite.y = gingerY; gingerSprite.down = function (x, y, obj) { if (!self.gingerFound) { self.gingerFound = true; LK.getSound('found').play(); tween(gingerSprite, { scaleX: 1.5, scaleY: 1.5 }, { duration: 300 }); LK.effects.flashObject(gingerSprite, 0x00ff00, 500); LK.setTimeout(function () { var nextLevel = levelNumber + 1; if (nextLevel <= 5) { storage.unlockedLevel = Math.max(storage.unlockedLevel, nextLevel); levelButtons[nextLevel - 1].unlock(); } if (nextLevel <= 5) { currentLevel = nextLevel; showGameplay(); } else { LK.showYouWin(); } }, 1000); } }; return self; }); var LevelButton = Container.expand(function (levelNumber, levelName, isLocked) { var self = Container.call(this); var buttonGraphics = self.attachAsset(isLocked ? 'lockedButton' : 'levelButton', { anchorX: 0.5, anchorY: 0.5 }); var labelText = new Text2(levelName, { size: 40, fill: isLocked ? "#666666" : "#ffffff" }); labelText.anchor.set(0.5, 0.5); self.addChild(labelText); self.levelNumber = levelNumber; self.isLocked = isLocked; self.down = function (x, y, obj) { if (!self.isLocked) { currentLevel = self.levelNumber; showGameplay(); } }; self.unlock = function () { self.isLocked = false; buttonGraphics.destroy(); var newButton = self.attachAsset('levelButton', { anchorX: 0.5, anchorY: 0.5 }); labelText.fill = "#ffffff"; LK.getSound('unlock').play(); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87ceeb }); /**** * Game Code ****/ var currentScreen = 'menu'; // 'menu' or 'gameplay' var currentLevel = 1; var levelButtons = []; var currentGameLevel = null; var titleText = new Text2("Where's Ginger?", { size: 80, fill: 0x2C3E50 }); titleText.anchor.set(0.5, 0.5); titleText.x = 1024; titleText.y = 300; game.addChild(titleText); var subtitleText = new Text2("Find Ginger hiding in each scene!", { size: 40, fill: 0x34495E }); subtitleText.anchor.set(0.5, 0.5); subtitleText.x = 1024; subtitleText.y = 400; game.addChild(subtitleText); var levelNames = ['Safari', 'Train', 'Snow', 'Kids Bedroom', 'Banana Land']; for (var i = 0; i < 5; i++) { var isLocked = i + 1 > storage.unlockedLevel; var button = new LevelButton(i + 1, levelNames[i], isLocked); button.x = 1024; button.y = 600 + i * 150; levelButtons.push(button); game.addChild(button); } var backButton = new Text2("ā Back to Menu", { size: 50, fill: 0xFFFFFF }); backButton.anchor.set(0, 0.5); backButton.x = 50; backButton.y = 150; backButton.down = function (x, y, obj) { showMenu(); }; function showMenu() { currentScreen = 'menu'; if (currentGameLevel) { currentGameLevel.destroy(); currentGameLevel = null; } if (backButton.parent) { game.removeChild(backButton); } titleText.visible = true; subtitleText.visible = true; for (var i = 0; i < levelButtons.length; i++) { levelButtons[i].visible = true; } } function showGameplay() { currentScreen = 'gameplay'; titleText.visible = false; subtitleText.visible = false; for (var i = 0; i < levelButtons.length; i++) { levelButtons[i].visible = false; } if (currentGameLevel) { currentGameLevel.destroy(); } currentGameLevel = game.addChild(new GameLevel(currentLevel)); game.addChild(backButton); }
===================================================================
--- original.js
+++ change.js
@@ -210,9 +210,9 @@
var newButton = self.attachAsset('levelButton', {
anchorX: 0.5,
anchorY: 0.5
});
- labelText.style.fill = "#ffffff";
+ labelText.fill = "#ffffff";
LK.getSound('unlock').play();
};
return self;
});