Войти на сайт

Авторизация, ждите ...
×
  • Страница:
  • 1
  • 2
  • 3
  • 4
  • 5

ТЕМА: Дневник разработчика DK

Дневник разработчика DK 7 года 10 мес. назад #91981

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Здесь будет мой личный чатик с вами и с самим собой.

Начну, пожалуй, с расхваливания плагина DKTools.

Создам простой HP Bar для лидера партии.

Готовый код (использовалась версия 0.88):
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Сначала нам нужно дополнить функцию start сцены карты (Scene_Map). В ней вызываем функцию для создания нашего бара.

Переходим к созданию самого бара.
В переменную actor записываем лидера партии.

Далее создаем Progress Bar из плагина DKTools, указывая в скобках координаты x,y (18 и 18) и ширину полосы (200).

Затем мы настраиваем максимальное значение бара, текущее значение и цвет. Делаем все это с помощью функции setupAll.

Функция start применяет все эти настройки и рисует наш бар.

Функция setUpdateHandler устанавливает обработчик функции обновления для бара. Каждый кадр функция будет устанавливать максимальное и текущее значение жизней для бара.

Сразу скажу, что бар перерисовывается только при изменении значения. Функции setMax и setValue сделаны таким образом, чтобы перерисовка бара происходила только при изменении значений.

Ну и в конце добавляем наш бар в сцену.

Результат:Яндекс.Диск
Клик по событию отнимает 100 жизней, также стоит параллельное событие +1 жизнь
Последнее редактирование: 7 года 10 мес. назад от DK.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Демий, yuryol, Noon, BloodyHell

Дневник разработчика DK 7 года 9 мес. назад #92054

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Пусть здесь также будет лавка не анонсированных плагинов (мб позже приведу в нормальный вид и выложу в отдельную тему)

Плагин позволяет резервировать несколько общих событий, а не только одно.
События резервируются с помощью $gameTemp.reserveCommonEvent(ID);

Код:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Демий

Дневник разработчика DK 7 года 9 мес. назад #92056

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
По поводу обновлений некоторых плагинов (инфа не 100% и даже не 146%)

Думаю, что плагин Время будет обновлен 3-4 раза (в принципе примерный план уже есть)
Выбор ответа с клавиатуры получит 1 обновление
Случайная графика евентов получит 1 обновление
Горячие клавиши получат 1-2 обновления
Пропуск главного меню получит 1 обновление
Переключатель в настройках получит 1 обновление
Уровни врагов 1 обновление
Звук экипировки 1 обновление
Судоку 1-2 обновления
Сундук с сокровищами 1-2 обновления
Полный ввод 1 обновление

Также надо доделать Древо навыков и Погоду
Последнее редактирование: 7 года 9 мес. назад от DK.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Демий

Дневник разработчика DK 7 года 9 мес. назад #92162

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Делаю обновление для плагина Времени. Дополнение уже готово, и оно позволяет настраивать переключатели по времени.
В новом обновлении Времени уже устранено много глупых ошибок :wall: добавлена поддержка смены языка налету вместе с форматом даты в окне времени, удалены некоторые параметры, добавлены новые функции. Также для этого потребуется обновить ядро DKCore до новой версии 1.72, которое будет выпущено вместе с обновлением Времени.

Видосик: Яндекс.Диск
Последнее редактирование: 7 года 9 мес. назад от DK.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Демий, yuryol

Дневник разработчика DK 7 года 9 мес. назад #92168

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Ничоси) похоже, что теперь можно автоматически записывать Время в переменные!
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Seibur, Демий, yuryol

Дневник разработчика DK 7 года 6 мес. назад #93777

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Сейчас я работаю над обновлением DKCore версии 1.8, которое добавит проверку обновлений для Бета-версий плагинов, окно с дополнительной информацией о плагинах, улучшения для локализации плагинов и исправления в коде. :)

Также ведется работа над крупнейшим обновлением для Время версии 1.6. Многие функции уже реализованы, но еще не все :(
Это обновление будет требовать DKCore версии 1.8 :unsure:

Да, помню, что давно еще обещал обновить DKTools, но возникли определенные трудности. Сегодня меня осенило и кажется дело пошло!

А пока вот вам три различных способа создать спрайт с изображением из папки System:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: yuryol

Дневник разработчика DK 7 года 6 мес. назад #93778

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1704
  • Спасибо получено: 2729
  • Победитель конкурсаКомпозитор3 место ГотвУчитель1 место в ГотвОраторОрганизатор конкурсов2 место
DK пишет:

А пока вот вам три различных способа создать спрайт с изображением из папки System:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

Побольше бы такого :blush:
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: DK

Дневник разработчика DK 7 года 6 мес. назад #94072

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Продолжаю развивать плагин Локализации.
Скоро будет новая версия с исправлениями ошибок, новыми функциями и поддержкой ядра DKCore версии 1.8+

Также делаю новый плагин для локализации, с помощью которого можно будет выбирать язык при запуске игры
Пока примерно так:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Плагин использует DKTools версии 0.92
Вот неполный код сцены:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Вроде получилось компактно, благодаря DKTools :)
Последнее редактирование: 7 года 6 мес. назад от DK.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: KageDesu

Дневник разработчика DK 7 года 6 мес. назад #94099

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Небольшой список полезных функций для Array. Взят из моего ядра DKCore.

Список:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Последнее редактирование: 7 года 6 мес. назад от DK.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: yuryol

Дневник разработчика DK 7 года 6 мес. назад #94101

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • Учитель3 место Готв2 место
Добавлять методы к стандартному классу немного опасно. Например, что если другой плагин или фреймворк тоже добавит метод count и он будет как-то отличаться?

Есть несколько способов, как поступить в таком случае:
  • Сказать "пронесёт" или "никто не будет добавлять метод count с другой реализацией". Но скажу, что мне уже текущий метод count кажется подозрительным, потому что я бы подумала, что он должен быть синонимом length...
  • Добавить в названия методов префикс, который вряд ли использует кто-то другой, например, DK_count. Хотя этот подход не 100%-но надёжный: появится завтра скриптер Dead Knight и назовёт свой метод так же...
  • Эти методы добавлять не в класс Array, а в новый класс DK_Array, либо унаследованный от Array, либо являющийся оболочкой того. Защита от случайных коллизий высокая, но тогда методы нельзя будет применять на стандартных массивах или же придётся пользоваться чем-то типа call или apply. Также нельзя будет пользоваться стандартной нотацией массива, потому что она создаёт Array.
  • Использовать символы: это специальный примитивный тип (как целые, строки и так далее), который может выступать в качестве ключей полей объектов. Каждый символ уникален, и созданы они специально чтобы избегать таких вот коллизий. Соответственно, обращаться нужно будет arr[DK.count](item) - не так красиво, как arr.count(item), но лучше, чем через apply/call.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: DK, strelokhalfer

Дневник разработчика DK 7 года 6 мес. назад #94140

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Клонирование спрайта вместе с клонированием битмапы.
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: yuryol

Дневник разработчика DK 7 года 5 мес. назад #94317

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Продолжаю работать над обновлением DKTools 0.92

Сейчас делаю глобальный рефакторинг кода, улучшаю и дописываю документацию.
Добавил один новый элемент (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 версией :)
Последнее редактирование: 7 года 5 мес. назад от DK.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: yuryol

Дневник разработчика DK 7 года 5 мес. назад #94334

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Продолжаю изобретать свои велосипеды!

Добавляю различные события для спрайтов.
Например, добавил следующие события:
mouseEnter - срабатывает один раз, когда мышь наводится на спрайт
mouseStay - срабатывает каждый фрейм, пока мышь находится на спрайте
mouseLeave - срабатывает один раз, когда мышь покидает спрайт

Для спрайта кнопки изменил стандартное поведение, сделав следующие события:
click - обычный щелчок по спрайту
dbclick - двойной щелчок по спрайту (время между кликами настраивается)
longClick - длительный щелчок по спрайту (время удержания настраивается)
Это работает для левой клавиши мыши, но добавить поддержку правой или средней клавиши очень легко
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: yuryol

Дневник разработчика DK 7 года 5 мес. назад #94342

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Просто оставлю это здесь: Видео
Администратор запретил публиковать записи гостям.

Дневник разработчика DK 7 года 5 мес. назад #94368

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Сравнение начала разработки версии 0.92 и предрелизный вариант:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.

Дневник разработчика DK 7 года 5 мес. назад #94619

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Немного информации о плагине консоли (я его не забросил)

Вот примерно новая структура консоли:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Что такое уровень команд ?
Так как команд планируется много + поддержка команд от других плагинов, то будет проще (мне так кажется) выделить основные группы для команд и, чтобы воспользоваться определенной командой, сначала надо будет войти в соответствующий режим и уже в нем набирать команды.

Стандартным будет уровень main (главный в русской версии) из которого можно будет попасть в остальные категории команд.
Все категории потом будут описаны в инструкции вместе со всеми доступными командами.

Например, чтобы выполнить какие-то действия над персонажем надо будет зайти в режим Герой, а полный уровень будет примерно таким: Главный > Герой
Для партии будет Главный > Партия
Ну и т.д.
А чтобы зайти в какой-то режим нужно будет просто написать его название

Быстрые подсказки также будут помогать вам. Например, вы начинаете вводить команду и в подсказках будут отображаться до 6 (наверное) возможных команд, которые содержат введенный текст.

Также будет доступна команда help (помощь) из самой консоли, которая будет предоставлять информацию о командах и категориях, и прочим...

Что касается вкладок и их контента. Пока я не решил сколько именно будет вкладок и какими они будут, но точно будет история введенных команд. Вы сможете просмотреть раннее введенные команда, а также повторить их, не вводя снова.

После каждой выполненной команды будет отображаться сообщение о ее выполнении или ошибке. Также я постараюсь сделать, что любая команда будет обрабатывать исключения, чтобы в мейкере не вылетали ошибки.

И да, плагин будет основан на DKTools
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: yuryol

Дневник разработчика DK 7 года 5 мес. назад #94632

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Вот как будут примерно выглядеть подсказки для ввода команд: Яндекс.Диск
Последнее редактирование: 7 года 5 мес. назад от DK.
Администратор запретил публиковать записи гостям.

Дневник разработчика DK 7 года 4 мес. назад #94758

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Первый тест консоли. Возможность подключать сторонние плагины к консоли (сторонний плагин должен поддерживать команды консоли)

Видео: Яндекс.Диск

Также на видео можно заметить, что команда exit доступна только из категории main. В будущем она будет доступна из любой категории.
Администратор запретил публиковать записи гостям.

Дневник разработчика DK 7 года 4 мес. назад #94792

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
На следующей неделе будет проводится бета-тест плагина Game Console (Игровая Консоль), с помощью которого вы запросто можете тестировать свой проект, изменяя различные параметры прямо в игре.
Отписываемся, кто хочет поучаствовать в бета-тесте.

P. S. Отписываться надо здесь: группа ВК, либо в лс
Администратор запретил публиковать записи гостям.

Дневник разработчика DK 7 года 4 мес. назад #94879

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • ОраторДаритель СтимкеяВетеранПаладинПроект месяца 2 местоПроект месяца 1 место2 место Программист RubyПрограммист JavaScript Проект месяца 3 место
Новая функция для спрайта в DKTools под названием moveFrame, которая позволяет перемещать frame спрайта

Пример работы: Яндекс.Диск
Администратор запретил публиковать записи гостям.
  • Страница:
  • 1
  • 2
  • 3
  • 4
  • 5
Время создания страницы: 0.286 секунд