Добавлен , опубликован
Приветствую. Сегодня я хотел бы поделится небольшой новостью. Прежде, хотел бы отметить что это связанно лёвой (LOVE), поэтому это может быть не интересно тем, кто не работает с данным инструментов для разработки.
Итак, я хочу рассказать о своих инструментах, позволяющие облегчить разработку игры, используя LOVE.
Сразу скажу, что многие детали всё ещё находятся в разработке и поэтому демонстрировать получится не всё.
Также я хотел бы узнать всё же нужны они или не особо.
Итак, начнём краткий обзор.

Цвета.

На данный момент разработан специальный скрипт mainColors.lua, позволяющий выбрать цвет для любого элемента, который будет отрисовываться в игр. То есть. Когда при указании цветов мы писали вызов функции setColor, а именно так:
love.graphics.setColor( r, g, b, a);
То здесь мы указывали вручную значение цветовых каналов, что не очень удобно. В mainColors.lua же есть заложенные стандартные цвета, а именно такие:
Указываются они очень просто:

love.graphics.setColor(Color:BLACK());
Здесь всё понятно, назначается чёрный цвет элементу. Также, в разработке идёт ещё и второй скрипт additionalColors.lua, которые имеют гораздо больше заложенных цветов, при этом они очень красочны. Вот Неполный список цветов:
Конечно, возникает небольшой недостаток, как выбрать подходящий цвет? Для этого я приложу картинку, с изображением вложенных цветов и их названия. Чтобы понять, как она будет выглядеть, достаточно. взглянуть на цветовую палитру, которую я выложил в самом начале раздела "Цвета".
Может было бы гораздо проще создать небольшую цветовую палитру, при выборе цвета, которая заполняла бы сразу строку setColor, но реализовать такое конечно не просто, однако если это будет востребовано, почему бы и нет. Цветовая палитра позволит выбрать желаемый цвет, записать уникальное имя цвета (это будет что-то вроде того же "BLACK") и выбрать путь к пользовательскому файлу. То есть. Разработчик выбирает желаемый цвет, далее путь к скрипту, где будут хранится все пользовательские цвета, например с именем userColor.lua. В этом файле будет генерироваться блок кода, а именно вложенный цвет. То есть пользователь сможет вызвать свой цвет как стандартный:
love.graphics.setColor(UserColor:MyGreenColor());
Также в разработке будут менее интересные методы, например, позволяющие генерировать HEX значение цвета в RGBA.
Да, и вызов метода Color:[name color]() позволяет заполнять все методы, требующие RGB значения.
То есть, с их помощью возможно также указание цвета фона канваса. Например:

love.graphics.setBackgroundColor(Color:GREEN());
love.graphics.setColor(Color:CYAN());
love.graphics.rectangle("fill",500,500,100,100);
Вот небольшой пример уже из "игры":
Идём дальше.

Интерфейс (UI).

При помощи инструмента DrawUI можно будет рисовать в любой части игрового окна, такие элементы как:
  • Тексты (Сам текст, Позиция, Шрифт, Размер Текста, Цвет текста). Переопределяемый метод
DrawUI:Text(x,y,font,sizeText,mainText,colorText);
  • Кнопки (Позиция, Размеры, Тип Кнопки, Текст, Цвет Кнопки, Цвет текста) Переопределяемый метод
DrawUI:Button(typeButton,x,y,width,height,colorButton,colorText);
  • Переключатель(Тип переключателя, Позиция, Размер, Первоначальное состояние, Текст (дополнительно), Флажок , Цвет Переключателя) Переопределяемый метод
DrawUI:Toggle(typeToggle,x,y,size,isActive,flag,colorToggle);
  • Поле ввода( Тип поля ввода,Позиция, Размеры, Подсказка (текст по умолчанию), максимальное вводимое число символов, Цвет поля ввода, Цвет вводимого текста, цвет подсказки) Переопределяемый метод
DrawUI:InputField(typeInputField,x,y,width,height,hint,maxSymbols,colorField,colorText,colorHint);
Конечно, это ещё не всё, но самое основное. Кстати, если всё же вам нужно добавить свой цвет, то вы можете вручную, в этих же методах, вместо вызова метода, записать значения RGBA каналов.
И напоследок.

Сцены и Фигуры.

SceneManager - это небольшой скрипт, позволяющий создать и сменить игровую сцену. Допустим нам необходимо создать игровое меню и несколько уровней. Для этого мы и можем использовать SceneManager. В этом скрипте будут реализованы также плавные переходы между сценами. Вот небольшой пример:

sceneManager:Scene2D("Menu", Color:TOMATO());
Хочу заметить что для каждой сцены есть своё уникальное имя (пока что не буду вдаваться в подробности зачем нам это нужно).
Главной фишкой этого скрипта является то, что он также может создать сцену по умолчанию в трехмерном пространстве.
И последний инструмент - Shape2D. Этот скрипт позволит создавать примитивы, спрайты более удобнее. Например он позволит хранить позицию элементов, центра экрана, клонировать объекты (для создания сетки, например), группировать элементы, например для перемещения, и прочее.
Пока сказать больше нечего, единственное, я нуждаюсь в помощи. Если среди вас есть толковые программисты, работающие с лёвой, то присоединяйтесь, облегчим процесс разработки.
Кстати, скорее всего весь код будет в свободном доступе, а значит каждый сможет его дополнить и улучшить.
0
31
0
ну выбор цветов еше может бbiть nолезен...
Ho,
>> Интерфейс (UI).
>> SceneManager
0
13
8 лет назад
0
Андреич, Ух ты, это круто, что уже такие вещи реализованы
0
29
8 лет назад
0
Этих и подобных либ на Love wiki просто МИЛЛИОН.
0
13
8 лет назад
0
Doc, Ну, всё же меньше, но согласен, их достаточно. И всё же некоторых инструментов ещё не хватает..
0
31
0
И всё же некоторых инструментов ещё не хватает..
for example..?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.