User prompt
Fix Bug: 'Error: The supplied DisplayObject must be a child of the caller' in this line: 'self.visible = false;' Line Number: 15
User prompt
Fix Bug: 'Error: The supplied DisplayObject must be a child of the caller' in this line: 'self.visible = false;' Line Number: 16
User prompt
Fix Bug: 'Error: The supplied DisplayObject must be a child of the caller' in this line: 'self.visible = false;' Line Number: 17
User prompt
Fix Bug: 'ReferenceError: settingsBackground is not defined' in this line: 'self.visible = false;' Line Number: 17
User prompt
z-index the newly spawned individual objects so that they are behind the settings menu
User prompt
Fix Bug: 'TypeError: game.getChildByName is not a function' in this line: 'var object3 = game.getChildByName('object3');' Line Number: 74
User prompt
Fix Bug: 'TypeError: game.getChildByName is not a function' in this line: 'var object2 = game.getChildByName('object2');' Line Number: 55
User prompt
Fix Bug: 'TypeError: game.getChildByName is not a function' in this line: 'var object1 = game.getChildByName('object1');' Line Number: 36
User prompt
add object1 object2 and object3 only appear when setting1 setting2 and setting3 are activated
/**** * Classes ****/ var Object3 = Container.expand(function () { var self = Container.call(this); var objectGraphics = self.createAsset('object3', 'Object 3', 0.5, 0.5); self.visible = false; }); var Object2 = Container.expand(function () { var self = Container.call(this); var objectGraphics = self.createAsset('object2', 'Object 2', 0.5, 0.5); self.visible = false; }); var Object1 = Container.expand(function () { var self = Container.call(this); var objectGraphics = self.createAsset('object1', 'Object 1', 0.5, 0.5); self.visible = false; }); var SettingOption = Container.expand(function (optionId, optionText) { var self = Container.call(this); self.isSelected = false; var optionGraphics = self.createAsset(optionId, optionText, 0.5, 0.5); self.addChild(optionGraphics); optionGraphics.on('down', function () { self.isSelected = !self.isSelected; if (optionId === 'setting1') { self.activateSetting1(); } else if (optionId === 'setting2') { self.activateSetting2(); } else if (optionId === 'setting3') { self.activateSetting3(); } }); self.activateSetting1 = function () { console.log('Setting 1' + (self.isSelected ? ' was activated' : ' was deactivated')); var object1 = game.getChildByName('object1'); if (self.isSelected) { setGameSetting('setting1', true); if (!object1) { object1 = game.addChild(new Object1()); object1.name = 'object1'; object1.x = 2048 / 2; object1.y = 2732 / 2 - 450; } object1.visible = true; } else { setGameSetting('setting1', false); if (object1) { object1.visible = false; } } }; self.activateSetting2 = function () { console.log('Setting 2' + (self.isSelected ? ' was activated' : ' was deactivated')); var object2 = game.getChildByName('object2'); if (self.isSelected) { setGameSetting('setting2', true); if (!object2) { object2 = game.addChild(new Object2()); object2.name = 'object2'; object2.x = 2048 / 2; object2.y = 2732 / 2 - 300; } object2.visible = true; } else { setGameSetting('setting2', false); if (object2) { object2.visible = false; } } }; self.activateSetting3 = function () { console.log('Setting 3' + (self.isSelected ? ' was activated' : ' was deactivated')); var object3 = game.getChildByName('object3'); if (self.isSelected) { setGameSetting('setting3', true); if (!object3) { object3 = game.addChild(new Object3()); object3.name = 'object3'; object3.x = 2048 / 2; object3.y = 2732 / 2 - 150; } object3.visible = true; } else { setGameSetting('setting3', false); if (object3) { object3.visible = false; } } }; }); /* * SettingsBackground class: This class represents the background of the settings menu. * It extends the Container class. */ var SettingsBackground = Container.expand(function () { var self = Container.call(this); /* * Constructor: This is where we set up the SettingsBackground. */ /* * Create the background graphics and add it to the SettingsBackground. * The anchor point is set to the center of the graphics. */ var settingsBgGraphics = self.createAsset('settingsBg', 'Settings Background', 0.5, 0.5); /* * Initially, the settings background is not visible. */ self.visible = false; }); /* * Cogwheels class: This class represents the settings cogwheels in the game. * It extends the Container class. */ var Cogwheels = Container.expand(function () { var self = Container.call(this); /* * Constructor: This is where we set up the Cogwheels. */ /* * Create the cogwheels graphics and add it to the Cogwheels. * The anchor point is set to the center of the graphics. */ var cogwheelGraphics = self.createAsset('cogwheels', 'Settings Cogwheel', 0.5, 0.5); /* * This flag indicates whether the car color option is currently displayed. */ /* * This will hold the CarColor instance when it is created. */ /* * Create the settings background. */ var settingsBackground = new SettingsBackground(); /* * When the cogwheels are tapped, we toggle the visibility of the settings menu. */ var setting1, setting2, setting3; cogwheelGraphics.on('down', function () { game.addChild(settingsBackground); console.log('Settings cogwheel tapped'); settingsBackground.visible = !settingsBackground.visible; settingsBackground.x = 2048 / 2; settingsBackground.y = 2732 / 2; if (!settingsBackground.visible) { if (setting1) { game.removeChild(setting1); } if (setting2) { game.removeChild(setting2); } if (setting3) { game.removeChild(setting3); } } else { setting1 = game.addChild(new SettingOption('setting1', 'Setting 1')); setting1.x = settingsBackground.x; setting1.y = settingsBackground.y - 300; setting1.isSelected = getGameSetting('setting1'); setting2 = game.addChild(new SettingOption('setting2', 'Setting 2')); setting2.x = settingsBackground.x; setting2.y = settingsBackground.y - 150; setting2.isSelected = getGameSetting('setting2'); setting3 = game.addChild(new SettingOption('setting3', 'Setting 3')); setting3.x = settingsBackground.x; setting3.y = settingsBackground.y; setting3.isSelected = getGameSetting('setting3'); } }); }); /**** * Initialize Game ****/ /* * Game initialization: This is where we create the game. * We set the background color to black. */ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ /* * Game code: This is where we set up the game. */ /* * Set the background color to white. */ var gameSettings = {}; function getGameSetting(setting) { return gameSettings[setting]; } function setGameSetting(setting, value) { gameSettings[setting] = value; } game.setBackgroundColor(0xFFFFFF); /* * Create the settings cogwheels and add it to the game. * We position it at the top right corner of the screen. */ var cogwheels = game.addChild(new Cogwheels()); cogwheels.x = 2048 - cogwheels.width / 2 - 50; cogwheels.y = 100;
/****
* Classes
****/
var Object3 = Container.expand(function () {
var self = Container.call(this);
var objectGraphics = self.createAsset('object3', 'Object 3', 0.5, 0.5);
self.visible = false;
});
var Object2 = Container.expand(function () {
var self = Container.call(this);
var objectGraphics = self.createAsset('object2', 'Object 2', 0.5, 0.5);
self.visible = false;
});
var Object1 = Container.expand(function () {
var self = Container.call(this);
var objectGraphics = self.createAsset('object1', 'Object 1', 0.5, 0.5);
self.visible = false;
});
var SettingOption = Container.expand(function (optionId, optionText) {
var self = Container.call(this);
self.isSelected = false;
var optionGraphics = self.createAsset(optionId, optionText, 0.5, 0.5);
self.addChild(optionGraphics);
optionGraphics.on('down', function () {
self.isSelected = !self.isSelected;
if (optionId === 'setting1') {
self.activateSetting1();
} else if (optionId === 'setting2') {
self.activateSetting2();
} else if (optionId === 'setting3') {
self.activateSetting3();
}
});
self.activateSetting1 = function () {
console.log('Setting 1' + (self.isSelected ? ' was activated' : ' was deactivated'));
var object1 = game.getChildByName('object1');
if (self.isSelected) {
setGameSetting('setting1', true);
if (!object1) {
object1 = game.addChild(new Object1());
object1.name = 'object1';
object1.x = 2048 / 2;
object1.y = 2732 / 2 - 450;
}
object1.visible = true;
} else {
setGameSetting('setting1', false);
if (object1) {
object1.visible = false;
}
}
};
self.activateSetting2 = function () {
console.log('Setting 2' + (self.isSelected ? ' was activated' : ' was deactivated'));
var object2 = game.getChildByName('object2');
if (self.isSelected) {
setGameSetting('setting2', true);
if (!object2) {
object2 = game.addChild(new Object2());
object2.name = 'object2';
object2.x = 2048 / 2;
object2.y = 2732 / 2 - 300;
}
object2.visible = true;
} else {
setGameSetting('setting2', false);
if (object2) {
object2.visible = false;
}
}
};
self.activateSetting3 = function () {
console.log('Setting 3' + (self.isSelected ? ' was activated' : ' was deactivated'));
var object3 = game.getChildByName('object3');
if (self.isSelected) {
setGameSetting('setting3', true);
if (!object3) {
object3 = game.addChild(new Object3());
object3.name = 'object3';
object3.x = 2048 / 2;
object3.y = 2732 / 2 - 150;
}
object3.visible = true;
} else {
setGameSetting('setting3', false);
if (object3) {
object3.visible = false;
}
}
};
});
/*
* SettingsBackground class: This class represents the background of the settings menu.
* It extends the Container class.
*/
var SettingsBackground = Container.expand(function () {
var self = Container.call(this);
/*
* Constructor: This is where we set up the SettingsBackground.
*/
/*
* Create the background graphics and add it to the SettingsBackground.
* The anchor point is set to the center of the graphics.
*/
var settingsBgGraphics = self.createAsset('settingsBg', 'Settings Background', 0.5, 0.5);
/*
* Initially, the settings background is not visible.
*/
self.visible = false;
});
/*
* Cogwheels class: This class represents the settings cogwheels in the game.
* It extends the Container class.
*/
var Cogwheels = Container.expand(function () {
var self = Container.call(this);
/*
* Constructor: This is where we set up the Cogwheels.
*/
/*
* Create the cogwheels graphics and add it to the Cogwheels.
* The anchor point is set to the center of the graphics.
*/
var cogwheelGraphics = self.createAsset('cogwheels', 'Settings Cogwheel', 0.5, 0.5);
/*
* This flag indicates whether the car color option is currently displayed.
*/
/*
* This will hold the CarColor instance when it is created.
*/
/*
* Create the settings background.
*/
var settingsBackground = new SettingsBackground();
/*
* When the cogwheels are tapped, we toggle the visibility of the settings menu.
*/
var setting1, setting2, setting3;
cogwheelGraphics.on('down', function () {
game.addChild(settingsBackground);
console.log('Settings cogwheel tapped');
settingsBackground.visible = !settingsBackground.visible;
settingsBackground.x = 2048 / 2;
settingsBackground.y = 2732 / 2;
if (!settingsBackground.visible) {
if (setting1) {
game.removeChild(setting1);
}
if (setting2) {
game.removeChild(setting2);
}
if (setting3) {
game.removeChild(setting3);
}
} else {
setting1 = game.addChild(new SettingOption('setting1', 'Setting 1'));
setting1.x = settingsBackground.x;
setting1.y = settingsBackground.y - 300;
setting1.isSelected = getGameSetting('setting1');
setting2 = game.addChild(new SettingOption('setting2', 'Setting 2'));
setting2.x = settingsBackground.x;
setting2.y = settingsBackground.y - 150;
setting2.isSelected = getGameSetting('setting2');
setting3 = game.addChild(new SettingOption('setting3', 'Setting 3'));
setting3.x = settingsBackground.x;
setting3.y = settingsBackground.y;
setting3.isSelected = getGameSetting('setting3');
}
});
});
/****
* Initialize Game
****/
/*
* Game initialization: This is where we create the game.
* We set the background color to black.
*/
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
/*
* Game code: This is where we set up the game.
*/
/*
* Set the background color to white.
*/
var gameSettings = {};
function getGameSetting(setting) {
return gameSettings[setting];
}
function setGameSetting(setting, value) {
gameSettings[setting] = value;
}
game.setBackgroundColor(0xFFFFFF);
/*
* Create the settings cogwheels and add it to the game.
* We position it at the top right corner of the screen.
*/
var cogwheels = game.addChild(new Cogwheels());
cogwheels.x = 2048 - cogwheels.width / 2 - 50;
cogwheels.y = 100;