User prompt
Fix Bug: 'ReferenceError: scoreTxt is not defined' in this line: 'scoreTxt.setText(LK.getScore().toString());' Line Number: 298
User prompt
Fix Bug: 'ReferenceError: scoreTxt is not defined' in this line: 'scoreTxt.setText(LK.getScore().toString());' Line Number: 298
User prompt
Fix Bug: 'ReferenceError: scoreTxt is not defined' in this line: 'scoreTxt.setText(LK.getScore().toString());' Line Number: 298
User prompt
Fix Bug: 'ReferenceError: scoreTxt is not defined' in this line: 'scoreTxt.setText(LK.getScore().toString());' Line Number: 298
User prompt
Fix Bug: 'Uncaught TypeError: this.initScoreText is not a function' in this line: 'this.initScoreText();' Line Number: 276
User prompt
Fix Bug: 'Uncaught ReferenceError: scoreTxt is not defined' in this line: 'cloudTabButton.y = scoreTxt.y + scoreTxt.height + 50;' Line Number: 251
User prompt
Fix Bug: 'Uncaught ReferenceError: scoreTxt is not defined' in this line: 'cloudTabButton.y = scoreTxt.y + scoreTxt.height + 50;' Line Number: 240
User prompt
Fix the problem with scoreTxt not being accessible in line 53
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'y')' in this line: 'cloudTabButton.y = scoreTxt.y + scoreTxt.height + 50;' Line Number: 243
User prompt
Let's make scoreTxt globally accessible
Code edit (1 edits merged)
Please save this source code
User prompt
Can we make scoreTxt globally accessible?
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'y')' in this line: 'cloudTabButton.y = scoreTxt.y + scoreTxt.height + 50;' Line Number: 229
User prompt
Fix Bug: 'Timeout.tick error: scoreTxt is not defined' in this line: 'scoreTxt.setText(LK.getScore().toString());' Line Number: 53
User prompt
Let's set two flags for upgrade buttons: available and purchased. Available should be defaulted to false unless set to true in the constructor. Purchased should be set to false when spawned.
User prompt
Fix Bug: 'Timeout.tick error: scoreTxt is not defined' in this line: 'scoreTxt.setText(LK.getScore().toString());' Line Number: 48
User prompt
Fix Bug: 'Timeout.tick error: scoreTxt is not defined' in this line: 'scoreTxt.setText(LK.getScore().toString());' Line Number: 48
User prompt
Fix Bug: 'Timeout.tick error: scoreTxt is not defined' in this line: 'scoreTxt.setText(LK.getScore().toString());' Line Number: 48
User prompt
Fix Bug: 'Timeout.tick error: scoreTxt is not defined' in this line: 'scoreTxt.setText(LK.getScore().toString());' Line Number: 48
Code edit (1 edits merged)
Please save this source code
User prompt
Fix Bug: 'Timeout.tick error: scoreTxt is not defined' in this line: 'scoreTxt.setText(LK.getScore().toString());' Line Number: 58
User prompt
Fix Bug: 'Timeout.tick error: scoreTxt is not defined' in this line: 'scoreTxt.setText(LK.getScore().toString());' Line Number: 58
User prompt
Fix Bug: 'Timeout.tick error: scoreTxt is not defined' in this line: 'scoreTxt.setText(LK.getScore().toString());' Line Number: 58
User prompt
Fix Bug: 'Timeout.tick error: Cannot read properties of undefined (reading 'scorePerSec')' in this line: 'LK.setScore(Math.round(LK.getScore() + self.parent.scorePerSec));' Line Number: 55
User prompt
Buying the first upgrade does not properly increase the score per second
var Upgrade = Container.expand(function (cost, effectType, effectMode, effectValue, available) { var self = Container.call(this); self.available = available || false; self.purchased = false; var self = Container.call(this); self.available = false; self.purchased = false; var upgradeGraphics = self.createAsset('upgrade', 'Upgrade Graphics', .5, .5); var costText = new Text2('Cost: ' + (cost < 10000 ? Math.round(cost) : cost.toPrecision(2)), { size: 35, fill: '#ffffff', anchor: { x: 0.5, y: 0.5 } }); costText.y = -35; costText.x = -costText.width / 2; self.addChild(costText); var effectDescription = effectType === 'click' ? 'Per Click: ' : 'Per Second: '; effectDescription += effectMode === 'add' ? '+' : 'x'; effectDescription += effectValue !== undefined ? effectValue.toString() : '0'; var effectText = new Text2(effectDescription, { size: 35, fill: '#ffffff', anchor: { x: 0.5, y: 0.5 } }); effectText.y = 35; effectText.x = -effectText.width / 2; self.addChild(effectText); self.cost = cost; self.effectType = effectType; self.effectMode = effectMode; self.effectValue = effectValue; self.purchased = false; self.on('down', function () { if (!self.purchased && LK.getScore() >= self.cost) { LK.setScore(LK.getScore() - self.cost); if (self.effectType === 'click') { if (self.effectMode === 'add') { cloud.clickValue += self.effectValue; } else { cloud.clickValue *= self.effectValue; } } else { if (self.effectMode === 'add') { self.parent.scorePerSec += self.effectValue; LK.setInterval(function () { LK.setScore(Math.round(LK.getScore() + self.effectValue)); scoreTxt.setText(LK.getScore().toString()); }, 1000); } else { self.parent.scorePerSec *= self.effectValue; } } self.purchased = true; self.removeChild(self); self.parent.children.forEach(function (upgrade, index) { if (upgrade.purchased) { self.parent.removeChild(upgrade); } else { upgrade.y -= 150; } }); } }); }); var TabButton = Container.expand(function (label, onClick) { var self = Container.call(this); var buttonGraphics = self.createAsset('tabButton', 'Tab Button Graphics', 0, 0.5); buttonGraphics.tint = 0x777777; var buttonText = new Text2(label, { size: 50, fill: '#ffffff', anchor: { x: 0.5, y: 0.5 }, align: 'center' }); self.addChild(buttonText); self.on('down', function () { onClick(); }); }); var TabSystem = Container.expand(function () { var self = Container.call(this); self.tabs = {}; self.currentTab = ''; self.addTab = function (name, content) { self.tabs[name] = content; content.visible = false; self.addChild(content); }; self.switchTab = function (name) { if (self.tabs[self.currentTab]) { self.tabs[self.currentTab].visible = false; self.tabs[self.currentTab].children.forEach(function (child) { child.visible = false; }); } self.currentTab = name; self.tabs[name].visible = true; self.tabs[name].children.forEach(function (child) { child.visible = true; if (child instanceof TabButton) { child.children[0].tint = 0xFFFFFF; } }); Object.values(self.tabs).forEach(function (content) { if (content !== self.tabs[name]) { content.children.forEach(function (child) { if (child instanceof TabButton) { child.children[0].tint = 0x777777; } }); } }); }; }); var Snowflake = Container.expand(function () { var self = Container.call(this); var snowflakeGraphics = self.createAsset('snowflake', 'Snowflake Graphics', .5, .5); self.rotationSpeed = (Math.random() - 0.5) * 0.02; self.swayMagnitude = Math.random() * 10; self.swaySpeed = (Math.random() - 0.5) * 0.03; self.sizeFactor = Math.random() * 0.75 + 0.25; self.scale.set(self.sizeFactor); self.swayMagnitude = self.sizeFactor * 5; self.swayOffset = Math.random() * Math.PI * 2; self.update = function () { self.y += 1 + Math.random() * 2; self.rotation += self.rotationSpeed; self.x += Math.sin(LK.ticks * self.swaySpeed * 2 + self.swayOffset) * (self.swayMagnitude * 0.25); }; self.collect = function () { LK.setScore(Math.round(LK.getScore() + 1)); scoreTxt.setText(LK.getScore().toString()); self.destroy(); }; }); var Cloud = Container.expand(function () { var self = Container.call(this); self.visible = true; var cloudGraphics = self.createAsset('cloud', 'Cloud Graphics', .5, .5); cloudGraphics.alpha = 1; self.spawnRate = 1; self.clickValue = 1; self.spawnSnowflake = function () { var snowflake = new Snowflake(); var cloudWidth = cloudGraphics.width; snowflake.x = self.x - cloudWidth / 2 + Math.random() * cloudWidth; snowflake.y = self.y + cloudGraphics.height / 2; snowflake.rotation = Math.random() * Math.PI * 2; return snowflake; }; }); var Game = Container.expand(function () { var self = Container.call(this); self.scorePerSec = 0; LK.stageContainer.setBackgroundColor(0x000000); var tabSystem = new TabSystem(); var upgradesTab = new Container(); var upgradesConfig = [{ cost: 10, effectType: 'perSecond', effectMode: 'add', effectValue: 1 }, { cost: 25, effectType: 'perSecond', effectMode: 'multiply', effectValue: 2 }, { cost: 100, effectType: 'perSecond', effectMode: 'multiply', effectValue: 2 }, { cost: 500, effectType: 'perSecond', effectMode: 'multiply', effectValue: 2 }, { cost: 1000, effectType: 'perSecond', effectMode: 'multiply', effectValue: 2 }, { cost: 2500, effectType: 'perSecond', effectMode: 'multiply', effectValue: 2 }, { cost: 10000, effectType: 'perSecond', effectMode: 'multiply', effectValue: 2 }, { cost: 20000, effectType: 'perSecond', effectMode: 'multiply', effectValue: 2 }]; var columns = 3; var upgradeWidth = 400; var upgradeHeight = 200; var upgradeSpacing = 200; var upgradePadding = 200; var startX = 0 - upgradeWidth / 2; var startY = 800; upgradesConfig.forEach(function (config, index) { var upgrade = upgradesTab.addChild(new Upgrade(config.cost, config.effectType, config.effectMode, config.effectValue)); var column = index % columns + 1; var row = Math.floor(index / columns); upgrade.x = startX + column * (upgradeWidth + upgradeSpacing); upgrade.y = startY + row * (upgradeHeight + upgradePadding); }); var scoreTxt; Game.prototype.initScoreText = function () { scoreTxt = new Text2('', { size: 150, fill: '#ffffff', anchor: { x: 0.5, y: 0.5 } }); scoreTxt.x = -scoreTxt.width / 2; LK.gui.topCenter.addChild(scoreTxt); scoreTxt.y = LK.gui.topCenter.height / 2; }; var cloudTabButton = new TabButton('Cloud', function () { tabSystem.switchTab('Cloud'); }); var upgradesTabButton = new TabButton('Upgrades', function () { tabSystem.switchTab('Upgrades'); }); cloudTabButton.x = -cloudTabButton.width; cloudTabButton.y = scoreTxt.y + scoreTxt.height + 50; upgradesTabButton.x = 10; upgradesTabButton.y = cloudTabButton.y; LK.gui.topCenter.addChild(cloudTabButton); LK.gui.topCenter.addChild(upgradesTabButton); self.addChild(tabSystem); var snowflakes = []; var cloudTab = new Container(); var cloud = cloudTab.addChild(new Cloud()); cloud.x = 2048 / 2; cloud.y = 2732 / 2; tabSystem.addTab('Upgrades', upgradesTab); tabSystem.addTab('Cloud', cloudTab); tabSystem.switchTab('Cloud'); this.initScoreText(); cloud.on('down', function (obj) { for (var i = 0; i < cloud.spawnRate; i++) { var snowflake = cloud.spawnSnowflake(); snowflakes.push(snowflake); self.addChild(snowflake); } LK.setScore(Math.round(LK.getScore() + cloud.clickValue)); scoreTxt.setText(Math.round(LK.getScore()).toString()); }); var tickCount = 0; LK.setInterval(function () { LK.setScore(Math.round(LK.getScore() + self.scorePerSec)); scoreTxt.setText(LK.getScore().toString()); }, 1000); LK.on('tick', function () { for (var i = snowflakes.length - 1; i >= 0; i--) { snowflakes[i].update(); if (snowflakes[i].y > 2732 + snowflakes[i].height) { snowflakes[i].destroy(); snowflakes.splice(i, 1); } } scoreTxt.setText(LK.getScore().toString()); }); });
===================================================================
--- original.js
+++ change.js
@@ -49,9 +49,9 @@
if (self.effectMode === 'add') {
self.parent.scorePerSec += self.effectValue;
LK.setInterval(function () {
LK.setScore(Math.round(LK.getScore() + self.effectValue));
- self.scoreTxt.setText(LK.getScore().toString());
+ scoreTxt.setText(LK.getScore().toString());
}, 1000);
} else {
self.parent.scorePerSec *= self.effectValue;
}
@@ -218,19 +218,22 @@
var row = Math.floor(index / columns);
upgrade.x = startX + column * (upgradeWidth + upgradeSpacing);
upgrade.y = startY + row * (upgradeHeight + upgradePadding);
});
- var scoreTxt = new Text2('', {
- size: 150,
- fill: '#ffffff',
- anchor: {
- x: 0.5,
- y: 0.5
- }
- });
- scoreTxt.x = -scoreTxt.width / 2;
- LK.gui.topCenter.addChild(scoreTxt);
- scoreTxt.y = LK.gui.topCenter.height / 2;
+ var scoreTxt;
+ Game.prototype.initScoreText = function () {
+ scoreTxt = new Text2('', {
+ size: 150,
+ fill: '#ffffff',
+ anchor: {
+ x: 0.5,
+ y: 0.5
+ }
+ });
+ scoreTxt.x = -scoreTxt.width / 2;
+ LK.gui.topCenter.addChild(scoreTxt);
+ scoreTxt.y = LK.gui.topCenter.height / 2;
+ };
var cloudTabButton = new TabButton('Cloud', function () {
tabSystem.switchTab('Cloud');
});
var upgradesTabButton = new TabButton('Upgrades', function () {
@@ -250,18 +253,9 @@
cloud.y = 2732 / 2;
tabSystem.addTab('Upgrades', upgradesTab);
tabSystem.addTab('Cloud', cloudTab);
tabSystem.switchTab('Cloud');
- var scoreTxt = new Text2('0', {
- size: 150,
- fill: '#ffffff',
- anchor: {
- x: 0.5,
- y: 0
- }
- });
- LK.gui.topCenter.addChild(scoreTxt);
- scoreTxt.y = 100;
+ this.initScoreText();
cloud.on('down', function (obj) {
for (var i = 0; i < cloud.spawnRate; i++) {
var snowflake = cloud.spawnSnowflake();
snowflakes.push(snowflake);