[1.6.4] координаты gui

435
1
В общем нужно использовать функцию glScissor в гуи, но как я знаю функция использует координаты пикселей экрана. При изменении формата экрана (guiScale) гуи само собой уменьшается/увеличивается. Помогите рассчитать где будет точка начала отрисовки окна гуи(в майновских гуишных кордах например это x100 y50) в виде координат экрана (получаю из Minecraft).
 
Ты вообще никогда думать не пытаешься? Перемножить два значения для тебя - форумный вопрос?
 
Уже сделал кое-что, при полном экране работает. При изменении размеров окна перестает работать. Делаю так:
Код:
    protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3)
    {
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        int k = (this.width - this.xSize) / 2;
        int l = (this.height - this.ySize) / 2;

        this.mc.getTextureManager().bindTexture(iconLocation);
        this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize);
        int i1;
        
        ScaledResolution scale;
        scale = new ScaledResolution(this.mc.gameSettings, this.mc.displayWidth, this.mc.displayHeight);
        int factor = 0;
        if(this.mc.gameSettings.guiScale != 0)
            factor = this.mc.gameSettings.guiScale;
        else
            factor = 4;        
        //System.out.println(factor);
        this.mc.getTextureManager().bindTexture(scissorTest);
        //this.drawTexturedModalRect(k+183, l+3, 0, 0, 31*factor, 22*factor);
        //this.drawTexturedModalRect(k+183, l+3, 0, 0, 41, 29);
        GL11.glEnable(GL11.GL_SCISSOR_TEST);
        GL11.glScissor((k+183)*factor, mc.displayHeight - (l+3)*factor - 29*factor, 41*factor, 29*factor);
        drawPlayerModel(k + 204, l + 62, 30, (float)(k + 51) - this.xSize_lo, (float)(l + 75 - 50) - this.ySize_lo, this.mc.thePlayer);
        GL11.glDisable(GL11.GL_SCISSOR_TEST);

    }
[merge_posts_bbcode]Добавлено: 17.08.2015 13:50:29[/merge_posts_bbcode]

Все поправил. Поменял this.mc.gameSettings.guiScale на scale.getScaleFactor()
 
Назад
Сверху