Я использую base64 как способ шифрования строк уровней, потому что в моей веб-игре «slidtrix» основная функция должна экспортировать ваш уровень, чтобы другие люди могли в него играть, но мой код (ниже) никогда не работает должным образом. кто-нибудь может помочь?
let levelTitle = '';
let levelAuthor = '';
function exportLevel() {
const title = prompt('Enter level title:', levelTitle);
if (title === null) return;
levelTitle = title;
const author = prompt('Enter author name:', levelAuthor);
if (author === null) return;
levelAuthor = author;
const data = {
title: levelTitle,
author: levelAuthor,
grid: grid.map(row => row.map(cell => cell.type))
};
const code = btoa(JSON.stringify(data));
prompt('Copy this save code:', code);
}
function loadFromCode(code) {
try {
const data = JSON.parse(atob(code));
levelTitle = data.title || 'Untitled Level';
levelAuthor = data.author || 'Unknown';
for (let y = 0; y < gridSize; y++) {
for (let x = 0; x < gridSize; x++) {
grid[y][x].type = data.grid[y][x];
}
}
player = null; // reset runtime
gameStarted = false;
renderGrid();
updateLevelMeta();
alert(`Level loaded!\n${levelTitle} By: ${levelAuthor}`);
} catch {
alert('Invalid save code!');
}
}
function updateLevelMeta() {
const metaEl = document.getElementById('level-meta');
if (metaEl) metaEl.textContent = `${levelTitle} By: ${levelAuthor}`;
}
// Attach hotkeys **after** functions exist
document.addEventListener('keydown', (e) => {
if (e.key === 'o' || e.key === 'O') {
exportLevel();
} else if (e.key === 'p' || e.key === 'P') {
const code = prompt('Paste your save code:');
if (code) loadFromCode(code);
}
});
Подробнее здесь: https://stackoverflow.com/questions/798 ... ng-hotkeys
Импорт/экспорт моего уровня не работает должным образом при использовании горячих клавиш. ⇐ Javascript
Форум по Javascript
1766220810
Anonymous
Я использую base64 как способ шифрования строк уровней, потому что в моей веб-игре «slidtrix» основная функция должна экспортировать ваш уровень, чтобы другие люди могли в него играть, но мой код (ниже) никогда не работает должным образом. кто-нибудь может помочь?
let levelTitle = '';
let levelAuthor = '';
function exportLevel() {
const title = prompt('Enter level title:', levelTitle);
if (title === null) return;
levelTitle = title;
const author = prompt('Enter author name:', levelAuthor);
if (author === null) return;
levelAuthor = author;
const data = {
title: levelTitle,
author: levelAuthor,
grid: grid.map(row => row.map(cell => cell.type))
};
const code = btoa(JSON.stringify(data));
prompt('Copy this save code:', code);
}
function loadFromCode(code) {
try {
const data = JSON.parse(atob(code));
levelTitle = data.title || 'Untitled Level';
levelAuthor = data.author || 'Unknown';
for (let y = 0; y < gridSize; y++) {
for (let x = 0; x < gridSize; x++) {
grid[y][x].type = data.grid[y][x];
}
}
player = null; // reset runtime
gameStarted = false;
renderGrid();
updateLevelMeta();
alert(`Level loaded!\n${levelTitle} By: ${levelAuthor}`);
} catch {
alert('Invalid save code!');
}
}
function updateLevelMeta() {
const metaEl = document.getElementById('level-meta');
if (metaEl) metaEl.textContent = `${levelTitle} By: ${levelAuthor}`;
}
// Attach hotkeys **after** functions exist
document.addEventListener('keydown', (e) => {
if (e.key === 'o' || e.key === 'O') {
exportLevel();
} else if (e.key === 'p' || e.key === 'P') {
const code = prompt('Paste your save code:');
if (code) loadFromCode(code);
}
});
Подробнее здесь: [url]https://stackoverflow.com/questions/79851657/my-level-import-export-is-not-working-properly-when-using-hotkeys[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия