Статический класс
Ранее мы говорили о том, что существуют динамические и статические классы. Поговорим подробнее о статических классах.
Статический класс создается всего один раз в самой программе. Создать объект статического класса через оператор new невозможно. Статический класс, как и глобальная переменная, живет всю программу и виден везде.
Статические классы используются для хранения информацию и осуществления функциями над ними.
Пример статических классов в игре:
DataManager – управляет загрузкой и сохранением игровых данных.
ConfigManager – хранит и управляет данными настройки игры (уровень звука и др.)
StorageManager – сохраняет и загружает данные из файлов на компьютере или на сервере.
ImageManager – управляет загрузкой изображений.
AudioManager – управляет проигрыванием звуков
SoundManager – вызывает проигрывание звуков с помощью AudioManager.
TextManager – хранит все текстовые переменные, что редактируются в Базе Данных.
SceneManager – управляет сценами.
BattleManager – управляет битвами.
PluginManager – управляет плагинами.
Создание собственного статического класса на примере класса DataManager
При попытке создать объект с помощью оператор new мы получим ошибку с текстом, указанным на изображении. Соответственно функция initialize не вызывается у таких классов, но может присутствовать (ее нужно будет вызывать самостоятельно)
Функции объявляются следующим образом:
Игровые данные
Все, что вы редактируете в Базе Данных в игре можно найти в глобальных переменных.
DataManager загружает всю информацию при запуске игры.
$dataActors - персонажи
$dataClasses - классы
$dataSkills - навыки
$dataItems - вещи
$dataWeapons - оружие
$dataArmors - броня
$dataEnemies - враги
$dataTroops – группы врагов
$dataStates - состояния
$dataAnimations - анимации
$dataTilesets - тайлсеты
$dataCommonEvents – общие события
$dataSystem - система
$dataMapInfos – информация о картах
$dataMap – карты
Эти данные хранятся в файлах в вашем проекте. При сохранении игры они не сохраняются. Изменяются только в Базе Данных. Тип данных у этих переменных – массивы. Причем учтите, что нулевой элемент равен null !
Также существуют данные, которые также создаются в начале игры, но они меняются по ходу игры и сохраняются, когда пользователь сохраняет игру.
$gameTemp – временные данные
$gameSystem – системные данные
$gameScreen – данные экрана
$gameTimer – данные таймера
$gameMessage – данные сообщений
$gameSwitches - переключатели
$gameVariables - переменные
$gameSelfSwitches – локальные переключатели
$gameActors - персонажи
$gameParty - партия
$gameTroop – отряд врагов
$gameMap - карта
$gamePlayer – игрок
Из этих данных не сохраняются $gameTemp, $gameMessage и $gameTroop.
Тип данных у этих переменных – классы. Определение этих классов можно посмотреть в файле rpg_objects.js
В следующем уроке мы подробно рассмотрим спрайты и битмапы.
Существует два наиболее используемых класса спрайтов: Sprite_Base и Sprite_Button
Sprite_Button – поддерживает нажатие мышью или пальцами на телефонах.
Спрайт – контейнер для управления битмапами.
Битмап (Bitmap) – область для рисования или рисунок, загруженный из файла. Поддерживает рисование текста, заливку цветом и др. функции (подробнее в справке или посмотрите класс Bitmap в файле rpg_core.js).
Спрайт используется для хранения битмапов и управления ими. Например, есть функции перемещения, возможность установить расположение рисунка (x, y), повернуть, увеличить/уменьшить, скрыть/показать и др.
Рекомендуется
Пролистайте файлы rpg_objects.js и rpg_managers.js
Посмотрите, какие у них есть переменные и функции