Anonymous
Как исправить графический интерфейс настроек popup.js
Сообщение
Anonymous » 14 май 2024, 20:15
Код: Выделить всё
const handleSettings = (func, value) => {
if (func === "sfx") {
sfxstate = value;
}
if (func === "music") {
if (value) {
bgmusic.volume = 1;
musicstate = true;
} else {
bgmusic.volume = 0;
musicstate = false;
}
}
};
const handlePopup = (popup) => {
const shop = new Popup({ id: "sbclicker-SHOP", title: "Shop", content: `testshop` });
const settings = new Popup({
id: "sbclicker-SETTINGS",
title: "Settings",
content: `
${sfxstate ? "SFX: ON" : "SFX: OFF"}
${musicstate ? "MUSIC: ON" : "MUSIC: OFF"}
Version: 1.0.0-dev
`,
hideCallback: () => {
$("#sbclicker-SETTINGS-SFX").off("click");
$("#sbclicker-SETTINGS-MUSIC").off("click");
console.log("[DEBUG] Settings buttons turned off successfully");
},
});
const achievements = new Popup({ id: "sbclicker-ACHIEVEMENTS", title: "Achievements", content: `testachievements` });
if (popup === "shop") {
shop.show();
} else if (popup === "settings") {
settings.show();
$("#sbclicker-SETTINGS-SFX").on("click", () => {
console.log("[DEBUG] SFX clicked");
const newState = $("#sbclicker-SETTINGS-SFX").text() === "SFX: ON" ? "off" : "on";
$("#sbclicker-SETTINGS-SFX").text(newState === "on" ? "SFX: ON" : "SFX: OFF");
handleSettings("sfx", newState === "on");
});
$("#sbclicker-SETTINGS-MUSIC").on("click", () => {
console.log("[DEBUG] MUSIC clicked");
const newState = $("#sbclicker-SETTINGS-MUSIC").text() === "MUSIC: ON" ? "off" : "on";
$("#sbclicker-SETTINGS-MUSIC").text(newState === "on" ? "MUSIC: ON" : "MUSIC: OFF");
handleSettings("music", newState === "on");
});
console.log("[DEBUG] Settings buttons turned on successfully");
} else if (popup === "achievements") {
achievements.show();
}
};
const turnOnHandlers = () => {
$("#sbclicker-GAME-HEADER-SHOP").on("click", () => {
console.log("[DEBUG] Shop clicked");
handlePopup("shop");
});
$("#sbclicker-GAME-HEADER-ACHIEVEMENTS").on("click", () => {
console.log("[DEBUG] Achievements clicked");
handlePopup("achievements");
});
$("#sbclicker-GAME-HEADER-SETTINGS").on("click", () => {
console.log("[DEBUG] Settings clicked");
handlePopup("settings");
});
console.log("[DEBUG] Buttons turned on successfully");
};
setTimeout(turnOnHandlers, 100);
я пишу игру-кликер с пробелом, и когда я впервые открываю внутриигровые настройки (с настройками музыки и звуковых эффектов), все работает хорошо, но когда я открываю в следующий раз, это не работает
(у меня все импортировано правильно)
Я попробовал перейти на addEventListener, RemoveEventListener, и это не сработало
Подробнее здесь:
https://stackoverflow.com/questions/784 ... ttings-gui
1715706924
Anonymous
[code]const handleSettings = (func, value) => { if (func === "sfx") { sfxstate = value; } if (func === "music") { if (value) { bgmusic.volume = 1; musicstate = true; } else { bgmusic.volume = 0; musicstate = false; } } }; const handlePopup = (popup) => { const shop = new Popup({ id: "sbclicker-SHOP", title: "Shop", content: `testshop` }); const settings = new Popup({ id: "sbclicker-SETTINGS", title: "Settings", content: ` ${sfxstate ? "SFX: ON" : "SFX: OFF"} ${musicstate ? "MUSIC: ON" : "MUSIC: OFF"} Version: 1.0.0-dev `, hideCallback: () => { $("#sbclicker-SETTINGS-SFX").off("click"); $("#sbclicker-SETTINGS-MUSIC").off("click"); console.log("[DEBUG] Settings buttons turned off successfully"); }, }); const achievements = new Popup({ id: "sbclicker-ACHIEVEMENTS", title: "Achievements", content: `testachievements` }); if (popup === "shop") { shop.show(); } else if (popup === "settings") { settings.show(); $("#sbclicker-SETTINGS-SFX").on("click", () => { console.log("[DEBUG] SFX clicked"); const newState = $("#sbclicker-SETTINGS-SFX").text() === "SFX: ON" ? "off" : "on"; $("#sbclicker-SETTINGS-SFX").text(newState === "on" ? "SFX: ON" : "SFX: OFF"); handleSettings("sfx", newState === "on"); }); $("#sbclicker-SETTINGS-MUSIC").on("click", () => { console.log("[DEBUG] MUSIC clicked"); const newState = $("#sbclicker-SETTINGS-MUSIC").text() === "MUSIC: ON" ? "off" : "on"; $("#sbclicker-SETTINGS-MUSIC").text(newState === "on" ? "MUSIC: ON" : "MUSIC: OFF"); handleSettings("music", newState === "on"); }); console.log("[DEBUG] Settings buttons turned on successfully"); } else if (popup === "achievements") { achievements.show(); } }; const turnOnHandlers = () => { $("#sbclicker-GAME-HEADER-SHOP").on("click", () => { console.log("[DEBUG] Shop clicked"); handlePopup("shop"); }); $("#sbclicker-GAME-HEADER-ACHIEVEMENTS").on("click", () => { console.log("[DEBUG] Achievements clicked"); handlePopup("achievements"); }); $("#sbclicker-GAME-HEADER-SETTINGS").on("click", () => { console.log("[DEBUG] Settings clicked"); handlePopup("settings"); }); console.log("[DEBUG] Buttons turned on successfully"); }; setTimeout(turnOnHandlers, 100); [/code] я пишу игру-кликер с пробелом, и когда я впервые открываю внутриигровые настройки (с настройками музыки и звуковых эффектов), все работает хорошо, но когда я открываю в следующий раз, это не работает (у меня все импортировано правильно) Я попробовал перейти на addEventListener, RemoveEventListener, и это не сработало Подробнее здесь: [url]https://stackoverflow.com/questions/78479699/how-to-fix-popup-js-settings-gui[/url]