|  2.06.2017 / 06:41 |  | 
| Витаминыч    Супермодератор 
  Сейчас: Offline 
 Имя: ВасилиусОткуда: RZN
 Регистрация: 20.04.2012
 
 | DominaN, Окно быстро создается?__________________
 
   わからない!! | 
|  2.06.2017 / 07:04 |  | 
| Death    Пользователь 
  Сейчас: Offline 
 Имя: СмертьРегистрация: 31.07.2015
 
 | Витаминыч, Очень быстро! Весит демка чуть больше 1мб. Вот это меня сильно удивило.__________________
 
   Смерть правит миром | 
|  2.06.2017 / 09:00 |  | 
| Magatino    Администратор 
  Сейчас: Offline 
 Имя: AlexandrОткуда: Где Ленин родился. Simbirsk City
 Регистрация: 28.01.2011
 
 | А можно как-нибудь описать в ПП на какой платформе проект и языке программирования, а то я томат и думаю, качать или не качать    | 
|  2.06.2017 / 09:33 |  | 
| Витаминыч    Супермодератор 
  Сейчас: Offline 
 Имя: ВасилиусОткуда: RZN
 Регистрация: 20.04.2012
 
 | Magatino, На Java SE__________________
 
   わからない!! | 
|  21.06.2017 / 03:39 |  | 
| DominaN    Пользователь 
  Сейчас: Offline 
 Имя: КириллОткуда: Смоленск
 Регистрация: 28.09.2011
 
 | Пример UI. Оказалось баги править и править, а потом еще структуру UI, а потом опять баги. Еще исправил забавный баг с мышкой, которая не обновлялась, пока не двигалась, поэтому дельта не сбрасывалась, что обнаружилось когда я делал перетаскивание окна.  ДА ЧТО НЕТАК С КАРТИНКОМЕ?  Изменено deamonsik (21.06 / 07:45) (всего 2 раза)
 | 
|  21.06.2017 / 09:35 |  | 
| Alexandr    Пользователь 
  Сейчас: Offline 
 Имя: АлександрОткуда: Днепр
 Регистрация: 01.07.2012
 
 | DominaN, vgui делаешь?   | 
|  21.06.2017 / 09:41 |  | 
| DominaN    Пользователь 
  Сейчас: Offline 
 Имя: КириллОткуда: Смоленск
 Регистрация: 28.09.2011
 
 | Цитата Alexandr:DominaN, vgui делаешь?
  Если кто не знал, VGUI - это Valve GUI    А вообще да, давно уже пилю. Хочу в отдельную либу вынести. | 
|  21.06.2017 / 09:47 |  | 
| Alexandr    Пользователь 
  Сейчас: Offline 
 Имя: АлександрОткуда: Днепр
 Регистрация: 01.07.2012
 
 | DominaN,   | 
|  6.03.2018 / 14:27 |  | 
| Death    Пользователь 
  Сейчас: Offline 
 Имя: СмертьРегистрация: 31.07.2015
 
 | Ну как там? Жив? Очень интересно что будет дальше)__________________
 
   Смерть правит миром | 
|  12.04.2018 / 00:47 |  | 
| DominaN    Пользователь 
  Сейчас: Offline 
 Имя: КириллОткуда: Смоленск
 Регистрация: 28.09.2011
 
 | Давненько я ничем не радовал, ибо были проблемы с ноутом, но теперь вот снова взялся за движок. А сегодня хочу представить результат моих экспериментов в разделении его на отдельные модули - модуль fenyx-utils, который представляет сборник небольших полезных классов-утилит и компилируется без привязки к основному ядру движка (fenyx-core). Я компилировал на чистом JDK8, возможно и на 7 версии скомпилится, но придется слегка обработать наждачкой. Итак, что в нем имеется? Открыть спойлер Закрыть спойлер- AWTImage.java - небольшой класс, который создает из обычного BufferedImage удобную обертку для представления изображения в формате OpenGL. Все, что требуется - передать BufferedImage в конструктор (с отдельным именем, или без). На выходе получаем класс с параметрами высоты, ширины, наличия прозрачности и выровненным нативным ByteBuffer, который можно скармливать OpenGL. (На самом деле сам по себе класс довольно специфический и используется в составе загрузчика ресурсов). Так же присутствует метод обновления графических данных без пересоздания самого объекта AWTImage, что способствует экономии памяти. - BufferUtils.java - ну тут вроде понятно, содержит методы для быстрого создания NIO буфферов, начиная от Byte, заканчивая Double.
 - MathUtils.java - тут довольно продвинутый класс. Используется для получения рандомных чисел через статический рандом, включая int, long, float, double и рандомного цвета в формате int_rgb. Так же присутствуют удобные обертки для основных математических функций (sin, cos, tan, sqrt, min, max, bound, pow, а так же метод angle, удобный для использования в алгоритме поиска цели (вычисление угла между двумя точками и направления между ними), а так же быстрая сортировка массивов). Не все функции работают со всеми примитивными типами, но в большинстве случаев методы с нужными аргументами легко добавляются по аналогии, просто в движке они не использовались изначально.
 - ResourceUtils.java - самый, наверное монструозный класс из всех. Служит для менеджмента игровыми (ну или любыми другими) ресурсами. Предоставляет удобный доступ к root-папке приложения относительно расположения исполняемого jar файла (может быть временно, или постоянно отключено через метод useRootDirectory). Реализует часть функционала IO, такого как создание файлов и папок, проверка наличия файла или папки, листинг файлов в папке, установка текущей директории напрямую (полезно для файл-менеджеров). Имеются методы для загрузки файлов из ФС в виде raw-byte массива, в виде единой строки, в виде массива строк (разделяются спецсимволом каретки "\n", можно легко дополнить перегруженным методом с дополнительным параметром сплиттера). Так же присутствует метод загрузки TTF-шрифтов с указанным размером, флагами и без. Ну и наконец метод загрузки AWTImage, про который я говорил ранее - что важно с КЭШИРОВАНИЕМ всех загруженных изображений, что позволило сократить использование памяти до 30-60%, в зависимости от количества используемых изображений.
 - StringUtils.java - класс для удобной работы со строками. Позволяет удобно разделять строки по сепаратору в массив, объединять из массива в одну строку, объединять неограниченное количество отдельных строк или любых переменных в единую строку, заменять части строк по паттерну, тримить строки. Для всего используются наиболее быстрые методы из доступных, включая статический StringBuilder, и основное удобство состоит в вызове единых методов, вместо написания кучи кода вручную.
 
 Вот, как-то так. Надеюсь, будет полезно   GitHub |