Статический класс

Ранее мы говорили о том, что существуют динамические и статические классы. Поговорим подробнее о статических классах.

Статический класс создается всего один раз в самой программе. Создать объект статического класса через оператор 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), повернуть, увеличить/уменьшить, скрыть/показать и др.