Дневник разработчика DK
Начну, пожалуй, с расхваливания плагина DKTools.
Создам простой HP Bar для лидера партии.
Готовый код (использовалась версия 0.88):
Сначала нам нужно дополнить функцию start сцены карты (Scene_Map). В ней вызываем функцию для создания нашего бара.
Переходим к созданию самого бара.
В переменную actor записываем лидера партии.
Далее создаем Progress Bar из плагина DKTools, указывая в скобках координаты x,y (18 и 18) и ширину полосы (200).
Затем мы настраиваем максимальное значение бара, текущее значение и цвет. Делаем все это с помощью функции setupAll.
Функция start применяет все эти настройки и рисует наш бар.
Функция setUpdateHandler устанавливает обработчик функции обновления для бара. Каждый кадр функция будет устанавливать максимальное и текущее значение жизней для бара.
Сразу скажу, что бар перерисовывается только при изменении значения. Функции setMax и setValue сделаны таким образом, чтобы перерисовка бара происходила только при изменении значений.
Ну и в конце добавляем наш бар в сцену.
Результат: Яндекс.Диск
Клик по событию отнимает 100 жизней, также стоит параллельное событие +1 жизнь
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Плагин позволяет резервировать несколько общих событий, а не только одно.
События резервируются с помощью $gameTemp.reserveCommonEvent(ID);
Код:
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Думаю, что плагин Время будет обновлен 3-4 раза (в принципе примерный план уже есть)
Выбор ответа с клавиатуры получит 1 обновление
Случайная графика евентов получит 1 обновление
Горячие клавиши получат 1-2 обновления
Пропуск главного меню получит 1 обновление
Переключатель в настройках получит 1 обновление
Уровни врагов 1 обновление
Звук экипировки 1 обновление
Судоку 1-2 обновления
Сундук с сокровищами 1-2 обновления
Полный ввод 1 обновление
Также надо доделать Древо навыков и Погоду
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
В новом обновлении Времени уже устранено много глупых ошибок
Видосик: Яндекс.Диск
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Также ведется работа над крупнейшим обновлением для Время версии 1.6. Многие функции уже реализованы, но еще не все
Это обновление будет требовать DKCore версии 1.8
Да, помню, что давно еще обещал обновить DKTools, но возникли определенные трудности. Сегодня меня осенило и кажется дело пошло!
А пока вот вам три различных способа создать спрайт с изображением из папки System:
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Скоро будет новая версия с исправлениями ошибок, новыми функциями и поддержкой ядра DKCore версии 1.8+
Также делаю новый плагин для локализации, с помощью которого можно будет выбирать язык при запуске игры
Пока примерно так:
Плагин использует DKTools версии 0.92
Вот неполный код сцены:
Вроде получилось компактно, благодаря DKTools
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Список:
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Есть несколько способов, как поступить в таком случае:
- Сказать "пронесёт" или "никто не будет добавлять метод count с другой реализацией". Но скажу, что мне уже текущий метод count кажется подозрительным, потому что я бы подумала, что он должен быть синонимом length...
- Добавить в названия методов префикс, который вряд ли использует кто-то другой, например, DK_count. Хотя этот подход не 100%-но надёжный: появится завтра скриптер Dead Knight и назовёт свой метод так же...
- Эти методы добавлять не в класс Array, а в новый класс DK_Array, либо унаследованный от Array, либо являющийся оболочкой того. Защита от случайных коллизий высокая, но тогда методы нельзя будет применять на стандартных массивах или же придётся пользоваться чем-то типа call или apply. Также нельзя будет пользоваться стандартной нотацией массива, потому что она создаёт Array.
- Использовать символы : это специальный примитивный тип (как целые, строки и так далее), который может выступать в качестве ключей полей объектов. Каждый символ уникален, и созданы они специально чтобы избегать таких вот коллизий. Соответственно, обращаться нужно будет arr[DK.count](item) - не так красиво, как arr.count(item), но лучше, чем через apply/call.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Сейчас делаю глобальный рефакторинг кода, улучшаю и дописываю документацию.
Добавил один новый элемент (Clicker), которому можно установить несколько битмап и по нажатию на спрайт, они будут циклически переключаться.
Сделал 3 базовых типа событий для спрайтов.
Переделываю слайдер (ту версию, которую я кидал в тему по этому плагину я решил еще немного видоизменить...)
Добавил множество функций в базовый спрайт
Добавил гибкости контейнеру, сделав возможным указать количество строк и столбцов в нем.
Удалил и изменил некоторые параметры у базового спрайта
Ну и конечно исправляю ошибки.
Видео: Видео
P.S.Что касается планов на будущие обновления
Я планирую, что к версии 0.95 я сделаю все спрайты, которые запланировал, а с версии 0.95 до релиза буду заниматься окнами.
В принципе мне сейчас осталось дописать Input_Base, Radio_Button_Base, ColorPicker_Base и Slider_Base
Окна планирую следующие:
Window_Base
Window_Selectable
Window_Command (с поддержкой команд в виде спрайтов)
Window_Container
Window_Input
Window_ComboBox
P.S.S. На данный момент каждая новая версия плагина несовместима со старой, потому что многое постоянно переписывается и дополняется, чтобы к релизу обеспечить максимальную гибкость плагина, чтобы как раз после релиза новые версии были совместимы со старыми.
Я даже уверен, что версия, о которой я пишу сейчас, может быть до неузнаваемости изменена с релизной 0.92 версией
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Добавляю различные события для спрайтов.
Например, добавил следующие события:
mouseEnter - срабатывает один раз, когда мышь наводится на спрайт
mouseStay - срабатывает каждый фрейм, пока мышь находится на спрайте
mouseLeave - срабатывает один раз, когда мышь покидает спрайт
Для спрайта кнопки изменил стандартное поведение, сделав следующие события:
click - обычный щелчок по спрайту
dbclick - двойной щелчок по спрайту (время между кликами настраивается)
longClick - длительный щелчок по спрайту (время удержания настраивается)
Это работает для левой клавиши мыши, но добавить поддержку правой или средней клавиши очень легко
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Вот примерно новая структура консоли:
Что такое уровень команд ?
Так как команд планируется много + поддержка команд от других плагинов, то будет проще (мне так кажется) выделить основные группы для команд и, чтобы воспользоваться определенной командой, сначала надо будет войти в соответствующий режим и уже в нем набирать команды.
Стандартным будет уровень main (главный в русской версии) из которого можно будет попасть в остальные категории команд.
Все категории потом будут описаны в инструкции вместе со всеми доступными командами.
Например, чтобы выполнить какие-то действия над персонажем надо будет зайти в режим Герой, а полный уровень будет примерно таким: Главный > Герой
Для партии будет Главный > Партия
Ну и т.д.
А чтобы зайти в какой-то режим нужно будет просто написать его название
Быстрые подсказки также будут помогать вам. Например, вы начинаете вводить команду и в подсказках будут отображаться до 6 (наверное) возможных команд, которые содержат введенный текст.
Также будет доступна команда help (помощь) из самой консоли, которая будет предоставлять информацию о командах и категориях, и прочим...
Что касается вкладок и их контента. Пока я не решил сколько именно будет вкладок и какими они будут, но точно будет история введенных команд. Вы сможете просмотреть раннее введенные команда, а также повторить их, не вводя снова.
После каждой выполненной команды будет отображаться сообщение о ее выполнении или ошибке. Также я постараюсь сделать, что любая команда будет обрабатывать исключения, чтобы в мейкере не вылетали ошибки.
И да, плагин будет основан на DKTools
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Видео: Яндекс.Диск
Также на видео можно заметить, что команда exit доступна только из категории main. В будущем она будет доступна из любой категории.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Отписываемся, кто хочет поучаствовать в бета-тесте.
P. S. Отписываться надо здесь: группа ВК , либо в лс
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пример работы: Яндекс.Диск
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
