умножение на float число в drawstring

Версия Minecraft
1.7.10
269
8
19
Смотрите хочу сделать размер текста в интерфейсе меньше. тобишь допустим glscalef(0.8f,0.9f.1f)
Всё будет хорошо, Но для того чтобы ловить размер экран нужно будет умножить width * 1.2f height * 1.1f. Но в drawstring нельзя умножать на float числа. Как можно реализовать? а, может есть какой-то другой вариант изменить размер текста(не текст самого майнкрафта)
 
Последнее редактирование:
7,099
324
1,510
Округляй до целого: ((int) value)
 
269
8
19
Последнее редактирование:
269
8
19
в дравстринге ставь координаты 0, а двигай через glTranslatef
Пробывал, Закрепляется расположение но только для левой стороны. а когда пробывал справа то уже не закрепляется.
Так вот код слева


ScaledResolution sr = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight);
int width = sr.getScaledWidth();
int height = sr.getScaledHeight();

Java:
        GL11.glPushMatrix();
        GL11.glScalef(0.8f, 0.9f, 1f);
        GL11.glTranslatef(1.2f + 2,height * 1.1f - 8, 1f);
        this.drawString(this.mc.fontRenderer, "hello", 0, 0, 0xffffff);
        GL11.glPopMatrix();
вод справа,правильно ли я делаю?правильно ли я тебя понял?
Java:
        GL11.glPushMatrix();
        GL11.glScalef(0.8f, 0.9f, 1f);
        GL11.glTranslatef(width * 1.2f - 50,height * 1.1f - 17.5f, 1f);
           this.drawString(this.mc.fontRenderer, "pravo", 0 , 0, 0xffffff);
        GL11.glPopMatrix();

Если бы я делал scalef = 0.5f и потом в drawstring width *2 было бы всё норм.
 
Последнее редактирование:

tox1cozZ

aka Agravaine
8,455
598
2,892
У меня вот так все пашет отлично:
Java:
GL11.glPushMatrix();
float textScale = 2.0F;
GL11.glScalef(textScale, textScale, 0);
GL11.glTranslatef(xPosition / textScale - 9.5F, yPosition / textScale - 9.5F, 0);
drawCenteredString(mc.fontRenderer, displayString, 0, 0, packedFGColour);
GL11.glPopMatrix();
 
269
8
19
Можно добится наименьшего cмещения
float width = sr.getScaledWidth() * 1.2f ;
Java:
          GL11.glPushMatrix();
          GL11.glScalef(0.8f, 0.9f, 1f);
          this.drawString(this.mc.fontRenderer, "pravo", (int)width - 63, 10, 0xffffff);
          GL11.glPopMatrix();

fullscreen.1544886444292.png
и если делать маленькое окно 1544886472806.png
 
1,038
57
229
*scale тогда при 0.5 это будет уменьшение, а 1.5 увеличение. Во первых так удобнее воспринимать (это повсеместно так применяется), во вторых если scale будет 0, то не выскочит сообщение о том что на ноль делить нельзя.
И ещё такой момент, WIDTH никогда не равен ширине вашего окна, он равен относительно scale в настройках GUI SCALE
иначе при другом GUI SCALE в настройках игры у вас сместится гораздо дальше
 
Сверху