Рендер картинки при эффекте

Версия Minecraft
1.7.10
929
30
66
Всем привет.
Кто может помочь кодом , при эффекте замедление нужно рендрить картинку сломанной кости или текст сломана нога.
 
Решение
Java:
    static final Minecraft mc = Minecraft.getMinecraft();

   @SubscribeEvent
    public void drawText(RenderGameOverlayEvent.Post event) {
        if (!mc.thePlayer.isPotionActive(Potion.moveSlowdown)) break;
        switch(event.type) {
//текстура
        case ALL:
            mc.getTextureManager().bindTexture(texture_break_leg);
            mc.ingameGUI.drawTexturedModalRect(2, 2, 0, 0, 16, 16);
            break;
//текст
        case TEXT:
            mc.fontRenderer.drawStringWithShadow(StatCollector.translateToLocal("break_leg"), 2, 20, 0xFFFFFF);
            break;
//
        default:break;
        }
    }
Java:
    @SubscribeEvent
    public void drawText(RenderGameOverlayEvent.Post event) {
        if...

timaxa007

Модератор
5,831
409
672
static final ResourceLocation texturebone = new ResourceLocation("bestfoxy", "textures/gui/bone.png");
Размер текстуры 256х256 это стандартно работает так метод drawTexturedModalRect.
0, 0 - это координаты начала на текстуре,
17, 17 - это размеры иконки на текстуре и на экране.
---
Вот текстура - new_hud.png
 
Последнее редактирование:

timaxa007

Модератор
5,831
409
672
К примеру в графическом редакторе пишется подобные, к примеру в Paint.NET в нижнем левом угле и с инструментом "Выделение" (думаю ты поймёшь что за цифры там):
 
344
1
47
Java:
public void rotateIcon(int angle)
{
        int w = theLabel.getIcon().getIconWidth();
        int h = theLabel.getIcon().getIconHeight();
        int type = BufferedImage.TYPE_INT_RGB;  // other options, see api

        BufferedImage DaImage = new BufferedImage(h, w, type);
        Graphics2D g2 = DaImage.createGraphics();

        double x = (h - w)/2.0;
        double y = (w - h)/2.0;
        AffineTransform at = AffineTransform.getTranslateInstance(x, y);

        at.rotate(Math.toRadians(angle), w/2.0, h/2.0);
        g2.drawImage(new ImageIcon(getData()).getImage(), at, theLabel);
        g2.dispose();

        theLabel.setIcon(new ImageIcon(DaImage));
        this.setSize(DaImage.getWidth(),DaImage.getHeight()); //resize the frame
}
 
929
30
66
Повернуть и изменить размер, можно использовать свой drawTexturedModalRect.
Можно подробнее ?
с Gl11 у меня уменьшается текстура , но уносит Меню инвентарь в левый угол
 

timaxa007

Модератор
5,831
409
672
но уносит Меню инвентарь в левый угол
Это нормально, так как типа там начало, альтернатива drawTexturedModalRect у него координаты по 0, но так-же добавить перенос:
mc.ingameGUI.drawTexturedModalRect(event.resolution.getScaledWidth() - 18, 2, 0, 0, 17, 17);
Java:
GL11.glPushMatrix();
GL11.glTranslatef(event.resolution.getScaledWidth() - 18, 2, 0);
GL11.glScalef(0.5F, 0.5F, 0.5F);
mc.ingameGUI.drawTexturedModalRect(0, 0, 0, 0, 17, 17);
GL11.glPopMatrix();
Ну или типа того.
 
199
1
17
@timaxa007 , с текстом всё работает,но с картинкой нет,есть ещё варианты чтоб работало ?
Была такая же проблема как и у тебя. Пришлось маленько переписывать. Держи рабочий пример. Путь к текстуре и "Constants.MODID" меняй на свое
Java:
 
Последнее редактирование:
7,099
324
1,510
Сверху