- 17
- 3
Итак, добрался я до изучения GUI, его отрисовки и позиционирования. И вот тут где-то у меня зарылась собака. Прямо псина сутулая
Хочу напихать значков в правый нижний угол, но не могу понять, как правильно работает позиционирование при изменении размера
Знаю. Норм так над формулой поизвращался... Но, из того что у меня получалось, это самое близкое к правильному результату
Вообще в идеале - найти как работает отрисовка HUD у эффекта зелья и позаимствовать с поправкой на scale. Но я не нашёл, где это можно подсмотреть
Хочу напихать значков в правый нижний угол, но не могу понять, как правильно работает позиционирование при изменении размера
Знаю. Норм так над формулой поизвращался... Но, из того что у меня получалось, это самое близкое к правильному результату
Вообще в идеале - найти как работает отрисовка HUD у эффекта зелья и позаимствовать с поправкой на scale. Но я не нашёл, где это можно подсмотреть
java:
@SubscribeEvent
public void drawText(RenderGameOverlayEvent.Post event) {
// draw FPS
int fps = Minecraft.getDebugFPS();
mc.fontRenderer.drawStringWithShadow("FPS: " + Integer.toString(fps), 1, 1, 0xFFFFFF);
if (mc.player.isPotionActive(Potion.getPotionById(2))) {
int w = mc.displayWidth;
int h = mc.displayHeight;
int ws = event.getResolution().getScaledWidth();
int hs = event.getResolution().getScaledHeight();
GL11.glPushMatrix();
mc.getTextureManager().bindTexture(dayzcore.textures.texture_break_leg);
// уменьшаю текстурку в размере
GL11.glScalef(0.15F, 0.15F, 0.15F);
// рисую
mc.ingameGUI.drawTexturedModalRect((int)((w-(ws*0.15))*3), (int)((h-(hs*0.15))*3), 0, 0, 250, 250);
GL11.glPopMatrix();
mc.fontRenderer.drawStringWithShadow("displayWidth " + Integer.toString(w), 1, 40, 0xFFFFFF);
mc.fontRenderer.drawStringWithShadow("getScaledWidth " + Integer.toString(ws), 1, 46, 0xFFFFFF);
mc.fontRenderer.drawStringWithShadow("w*0.15 " + Integer.toString((int)(w *0.15)), 1, 54, 0xFFFFFF);
mc.fontRenderer.drawStringWithShadow("w-(ws*0.15) " + Integer.toString((int)((w-(ws*0.15))*3)), 1, 60, 0xFFFFFF);
mc.fontRenderer.drawStringWithShadow("итог " + Integer.toString((int)((w-(ws*0.15))*3)), 1, 66, 0xFFFFFF);
String text = "Сломана кость";
mc.fontRenderer.drawStringWithShadow(text, ws-(text.length()*4) - 4, hs - 18, 0xFFFFFF);
}
}