Малювання GUI
Ця сторінка передбачає, що ви переглянули сторінку основні концепції рендера.
Клас GuiGraphics є основним класом, який використовується для рендера в грі. Він використовується для рендера форм, тексту та текстур, і, як бачили раніше, використовується для маніпулювання PoseStack і використання BufferBuilder.
Малювання фігур
Клас GuiGraphics можна використовувати для легкого малювання квадратних фігур. Якщо ви хочете намалювати трикутники або будь-яку неквадратну форму, вам потрібно буде використовувати BufferBuilder.
Малювання прямокутників
Щоб намалювати прямокутник із заливкою, можна використати метод GuiGraphics.fill(...).
java
No lines matched.1

Малювання контурів/меж
Скажімо, ми хочемо окреслити прямокутник, який ми щойно намалювали. Ми можемо використати метод GuiGraphics.renderOutline(...), щоб намалювати контур.
java
No lines matched.1

Малювання окремих ліній
Ми можемо використовувати методи GuiGraphics.hLine(...) і DrawContext.vLine(...) для малювання ліній.
java
No lines matched.1

Менеджер ножиць
Клас GuiGraphics має вбудований менеджер ножиць. Це дає змогу легко прикріпити рендер до певної області. Це корисно для рендера таких речей, як підказки або інші елементи, які не повинні рендеритися за межами певної області.
Використання менеджера ножиць
TIP
Області ножиць можуть бути вкладеними! Але переконайтеся, що ви вимикаєте менеджер ножиць стільки ж разів, скільки вмикали його.
Щоб увімкнути менеджер ножиць, просто скористайтеся методом GuiGraphics.enableScissor(…). Так само, щоб вимкнути менеджер ножиць, скористайтеся методом GuiGraphics.disableScissor().
java
No lines matched.1

Як бачите, хоча ми наказуємо грі рендерити градієнт на весь екран, він відтворює лише область ножиць.
Малювання текстур
Не існує єдиного «правильного» способу намалювати текстури на екрані, оскільки метод blit(…) має багато різних перевантажень. У цьому розділі розглядаються найпоширеніші випадки використання.
Малювання всієї текстури
Загалом, рекомендується використовувати перевантаження, яке визначає параметри textureWidth і textureHeight. Це тому, що клас GuiGraphics прийматиме ці значення, якщо ви їх не надасте, що іноді може бути неправильним.
Вам також потрібно буде вказати, який конвеєр рендера використовуватиме ваша текстура. Для базових текстур зазвичай завжди буде RenderPipelines.GUI_TEXTURED.
java
No lines matched.1

Нанесення частини текстури
Ось де входять u і v. Ці параметри визначають верхній лівий кут текстури для малювання, а параметри regionWidth і regionHeight визначають розмір частини текстури для малювання.
Візьмемо цю текстуру як приклад.

Якщо ми хочемо намалювати лише область, яка містить збільшувальне скло, ми можемо використовувати наступні значення u, v, regionWidth і regionHeight:
java
No lines matched.1

Малювання тексту
Клас GuiGraphics має різні зрозумілі методи рендера тексту — задля стислості вони не розглядатимуться тут.
Скажімо, ми хочемо намалювати на екрані «Hello World». Для цього ми можемо використати метод GuiGraphics.drawString(…).
INFO
Minecraft 1.21.6 і вище змінює колір тексту на ARGB замість RGB. Передача значень RGB призведе до того, що ваш текст стане прозорим. Допоміжні методи, такі як ARGB.opaque(...), можна використовувати для зміни RGB на ARGB під час портування.
java
No lines matched.1


