Найти тему
OVERCLOCKERS.RU

ChimbaBench 1.2: Выполняю обещание, и работаю над интерфейсом бенчмарка

Оглавление

В первой статье про ChimbaBench я пообещал, что реализую возможность переводить моё приложение на разные языки, не то чтобы это было важно, для меня не проблема работать с интерфейсом на русском/английском языке, да и "претензии" были к Godot Engine относительно локализации проектов:

-2

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

Я не буду заострять внимание на мелочах, и код может менять свой вид от скриншота к скриншоту, впрочем, это очевидно, ведь я работаю над ним...

Сейчас идет работа над интерфейсом бенчмарка в основном.

-3

Здесь уже "тест шрифта" вынесен в отдельное окно, пока то не очень похоже на окно, но я же говорил про "зачатки".

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

Теперь у любого пользователя доступно текстовое поле, в которое можно ввести тест и посмотреть на его отображение с текущим активным шрифтом:

-5

А еще я перенес настройки шрифта в отдельную функцию, и да, я не использую "темы" предоставленные Godot Engine для изменения шрифтов, ибо мне лучше через скрипт делать такие вещи, хотя может я просто становлюсь "красноглазым":

Далее я уже занялся своим "обещанием" и набросал пару функций, подобное я уже реализовал в Chi Calculator, потому я просто часть кода перенес из другого своего проекта, и переделал для ChimbaBench:

-7

Вот и положено начало, теперь можно просто открыть файл конфигурации в папке "Localization", и перевести на разные языки мой бенчмарк, и не нужны никакие CSV файлы с ключами дешифровки, хотя мой проект и так с открытым исходным кодом...

-8

Конечно, сейчас можно перевести только заголовок приложения, но всему своё время.

Далее я взялся за работу над окнами, добавил кнопки, в окне тестирования шрифта добавил строку, которая в будущем будет отображать название текущего шрифта, в общем, окна теперь стали похожи на окна, их можно открыть и закрыть:

-9

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

-10

Наверняка уже некоторые заметили, что у некоторых элементов стандартный шрифт "тонкий", так вот, я каждому элементу присваиваю шрифт вручную, прямо в середине кода, жирный такой блок с кучей зеленых штуковин:

-11

Пришло время "оптимизировать" этот кусок кода:

-12

Преобразование завершено, теперь мне не нужно делать "COPY/PASTE" функций, мне достаточно просто вписать путь к элементу в массив, а там уже цикл сам присвоит каждому элементу текущий шрифт, или иное свойство:

-13

Так гораздо лучше, конечно же в комментариях набегут "эксперты" и начнут рассказывать, как всё ужасно, и чтобы я вообще бросил проект, ведь под Linux якобы полно бенчмарков... Но я скажу так, оставьте своё "очень важное" мнение на этот счёт при себе :)

-14

Чтобы не прописывать лишний раз элементы в каждом месте где они могут быть нужны, я вынес массив в главный скрипт, и прописал полные пути до элементов, таким образом к элементам есть доступ из любого места проекта, достаточно просто взять значения из главной ноды.

Теперь можно снова поработать над локализацией, ничего сложного, просто рутина, которую возможно "оптимизирую" позже.

-16

Как оно работает? Очень просто, присваивает текст элементам из файла конфигурации локализации, нужно только добавить настройку размера шрифта, будет полезно для разных языков, ибо сейчас интерфейс подстраивается под размер строки:

-17

Чтобы упростить задачу я разбил массив на разные части, каждая часть будет отвечать за свою "зону", и так мне будет проще брать нужные значения, да и вдруг я захочу разные шрифты назначить разным разделам...

-18

Теперь мне не нужно будет вручную прописывать путь к элементу при изменениях в проекте, достаточно один раз изменить строку в массиве, и всё само подтянет в коде, есть конечно и проблемы такого подхода, но тут следует напомнить всем язвительным "экспертам": Я не программист, потому делаю как мне удобно, не по нраву мой подход? Сделайте свой "идеальный исходный код", и мастурбируйте на него хоть до посинения, я делаю не ради красоты кода, а ради удобства пользователя.

-19

Так как возня с локализацией мне немного надоела, было решено набросать окно сообщения, да, весьма грубо, да, отобразит только одно сообщение за раз, но оно работает, и наверняка будет полезно.

-20

Изначально я хотел это окно сделать автоматическим, но что если пользователь отойдёт на минуту, а окно в этот момент появится и само исчезнет? Будет весьма неприятно...

-21

А потом я подумал, ведь одно сообщение за раз это весьма неудобно может быть, и сделал полноценное текстовое поле, только в режиме для чтения, чтобы пользователь случайно не стёр информацию.

-22

Хотя в итоге я отказался от того, чтобы делать поле в режиме только для чтения, и вот, теперь окно стало намного информативнее:

-23

Со стороны программирования это не сложно, если окно не видно, то показывает окно и выводит сообщение, если окно открыто, то просто добавляет новое сообщение к предыдущему, элементарно:

-24

И на этом я пожалуй завершу работу над текущей версией ChimbaBench.

-

--

---

Заключение

Пора бы заканчивать работу над ChimbaBench v1.2, если продолжу и дальше разработку, то это уже будет сразу версия 2.0, а мне это сейчас не нужно.

Точно, совсем забыл, окно со ссылками на блог и GitHub, только окно уведомлений нужно будет вытащить на передний плат, но это уже работа для следующих версий бенчмарка:

-25

На этом точно хватит для версии 1.2, как и обещал, функционал для простой локализации приложения я реализовал, пока лишь частично, но уже реализовал, осталось только дорабатывать уже созданное и создавать новое.

Проверяю на всякий случай в среде Linux:

-26

И конечно оставляю ссылку на репозиторий: ( github.com/Shedou/ChimbaBench ).

Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.

-27

📃 Читайте далее на сайте