Игра в стиле песочница.
© Adaptive Core 2023
Песочница с автоматически генерируемой доской, который можно запустить и посмотреть на взаимодействия элементов. Но главное в игре является не случайная генерация доски, а поддержка пользовательского кода. Ведь можно редактировать или же вообще убрать встроенные элементы, можно создать свои элементы, дополнить принципом взаимодействия с другими элементами и подключить к доске. Пользовательские элементы так же будут сгенерированы на доске с заданным процентом и полностью поддерживаться игрой. Структура элементов и их взаимодействие содержится в файле elements.js
, который можно редактировать как угодно. Для написания пользовательских элементов советуем взглянуть на код встроенных элементов, или же на пример пользовательского элемента снизу.
//#region Sample Element // Рекомендуется собрать каждый элемент в отдельный регион.
class SampleElement extends Elemental { // Все элементы должны расширить класс Elemental.
static title = `Sample Element`; // Создается статичное поле title который хранит в себе название этого типа элементов.
static color = new Color(0, 0, 0); // Таким же методом создается color хранящий в себе цвет.
static durationSampleAbility = 1; // Для каждой способности рекомендуется создать отдельную переменную указавшую его длительность подготовки.
constructor() {
super(); // Конструктор родителя зовется в начале без аргументов.
this._title = SampleElement.title; // Передается имя типа в отдельные экземпляры.
this._color = SampleElement.color; // То же самое и с цветом.
this.abilities.push(this.#sampleAbility) // Подключаются способности. О них чуть ниже.
}
#sampleAbility = new Ability(`Sample Ability`, () => { // Для каждой способности создается приватное поле хранящий его в себе. Для создания способности используется класс Ability.
// Действия при использовании способности.
return true; // Обнулить прогресс подготовки способности после его использования? Значение true соответствует обнулению.
}, SampleElement.durationSampleAbility); // Передача длительности.
}
board.cases.set(SampleElement, 50); // После создания элемента подключается она следующим образом, в котором второй параметр указывает процент появления этого элемента. Стоит учитывать что на результат влияют так же проценты появления остальных элементов.
//#endregion
- Добавлена возможность сделать снимок доски.
- Добавлена возможность изменить игровой цикл в настройках.
- Исправлена ошибка со совместимостью версий настроек.
- Улучшен дизайн.
- Исправлены ошибки дизайна, при которой доска с размером 101 и больше выходила из границ страницы.
- Адаптирована панель управления под разные темы.
- Улучшена HTML структура.
- Изменена иконка песочницы.
- Изменены стили.
- Исправлены ошибки в дизайне.
- Добавлены описания к коду.
- Улучшены модули, для удобной работы.
- Улучшена структура кода.
- Сокращена структура кода, насчет сжатия повторяющийся действий.
- Добавлена полная поддержка пользовательских скриптов.
- Оптимизирована работа счетчика элементов.
- Улучшена работа настроек темы.
- Улучшены описания ошибок.
- Убраны нестабильные функции.
- Добавлен пример пользовательского кода.
- Добавлена возможность изменить абсолютное количество кадров в секунду в меню настроек.
- Ускорена работа настроек и сохранений.
- Изменена иконка главной страницы.
- Добавлены иконки сверху в страницах.
- Активирован безопасный режим, который сохранит целостность данных при появлении ошибок.
- Доступна проверка обновлений при подключении к интернету из меню настроек.
- Теперь можно скрыть элементы с нулевым количеством в счетчике элементов.
- Улучшена структура настроек.
- Улучшена структура выпадающего меню в настройках.
- Добвлен раздел настроек.
- В настройках доступно изменение темы.
- В настройках можно скрыть или показать счетчик FPS.
- В настройках можно скрыть или показать счетчик элементов.
- В настройках можно измнить размер доски.
- Исправлена внутренняя конструкция программы.
- Исправлены стили.
- Добавлены эффекты.
- Исправлены шрифты.
- Добавлены предупреждающие подсказки о потере данных.
- Изменена цвет элементы Dirt (раньше Void).
- Оптимизирована работа программы.
- Исправлена индикатор движения у доски.
- Изменен дизайн.
- Добавлена темна тема (внутренное переключение).
- Изменена структура элементов.
- Исправлена ошибка неправильной отрисовки слоя.
- Добавлены маленькие эффекты.
- Добавлен цвет счетчика FPS.
- Добавлен таблица элементов.
- Улучшена структура доски.
- Игра переписана на JS (с поддержкой JSDoc).
- Изменена вся структура игры.
- Добавлено (пока что) внутренное динамическое взаимодействие.
- Добавлены пользовательские элементы.
- Добавлен счетсик FPS.