Смена картинки

Версия Minecraft
1.7.10
1,471
19
190
Имеется свой GUI, нужно сделать, что бы каждые 30-60 сек. менялась картинка
 
Создавай новые переменные текстур и переменную которая будет значения, сколько времени прошло от начало показа первой текстуры, затем в бинде текстуры менять текстуры каждые "30-60 сек.".
 
timaxa007 написал(а):
Создавай новые переменные текстур и переменную которая будет значения, сколько времени прошло от начало показа первой текстуры, затем в бинде текстуры менять текстуры каждые "30-60 сек.".

Как получить что майнкрафт запущен?
 
timaxa007 написал(а):
Эм... И зачем такое?

Не надо.

Код:
int t = 1;
       
       while(t<60){
       ++t;
       
       System.out.println(t);
       }
Такое будет работать?
 
timaxa007 написал(а):
Код:
int t = 0;
/**
 * Called from the main game loop to update the screen.
 */
@Override
public void updateScreen() {
++t;
if (t >= 96000)
t = 0;
}
А он в тиках измеряет?
 
timaxa007 написал(а):
Ну, почти. Написано-же в комментарии:
Вызывается из основного цикла игры для обновления экрана.

Всё, считает, теперь нужно сделать так, когда проходи 60 секунд 1 раз, менялась картинка с textures/gui/title/bg.jpg
на textures/gui/title/bg2.jpg
Когда проходит 2 раз, то картинка менялась
с textures/gui/title/bg2.jpg
на textures/gui/title/bg.jpg
 
Код:
public static final ResourceLocation
bg1 = new ResourceLocation("textures/gui/title/bg.png"),
bg2 = new ResourceLocation("textures/gui/title/bg2.png");

int t = 0;

/**
* Called from the main game loop to update the screen.
*/
@Override
public void updateScreen() {
++t;
if (t >= 20 * 60 * 2)
t = 0;
}

//где используется у тебя используеться mc.getTextureManager().bindTexture, типа того писать
mc.getTextureManager().bindTexture((t >= 20 * 60 ? bg1 : bg2))
 
timaxa007 написал(а):
Код:
public static final ResourceLocation
bg1 = new ResourceLocation("textures/gui/title/bg.png"),
bg2 = new ResourceLocation("textures/gui/title/bg2.png");

int t = 0;

/**
* Called from the main game loop to update the screen.
*/
@Override
public void updateScreen() {
++t;
if (t >= 20 * 60 * 2)
t = 0;
}

//где используется у тебя используеться mc.getTextureManager().bindTexture, типа того писать
mc.getTextureManager().bindTexture((t >= 20 * 60 ? bg1 : bg2))

А в каком расширение лучше использовать картинки png или jpg или что-то другое?
 
timaxa007 написал(а):
Лучше png, с jpg он вроде плохо работает или во-обще не работает.

У меня работает.
А если я захочу добавить ещё картинок, то добавляю 
bg3 = new ResourceLocation(rcc.modid, "textures/gui/title/bg3.jpg");
изменяю 
if (t >= 20 * 60 * 2)
на
if (t >= 20 * 60 * 3)
и
mc.getTextureManager().bindTexture((t >= 20 * 60 ? bg1 : bg2));
на 
mc.getTextureManager().bindTexture((t >= 20 * 60 ? bg1 : bg2 : bg3));
 
timaxa007 написал(а):
Что-то типа этого:
Код:
int p = (20 * 60) / 3;
mc.getTextureManager().bindTexture((p == 1 ? bg1 : p == 2 ? bg2 : bg));
[font=Monaco, Consolas, Courier, monospace]int p = (20 * 60) / 4;[/font]

[font=Monaco, Consolas, Courier, monospace]mc.getTextu[/font][font=Monaco, Consolas, Courier, monospace]reManager().bindTexture((p == 1 ? bg1 : p == 2 ? bg2 : p == 3 ? bg3: bg4));[/font]

[font=Monaco, Consolas, Courier, monospace]Это для 4?[/font]
 
Охх
Код:
private static final ResourceLocation[] RES = new ResourceLocation[] {
    new ResourceLocation("textures/gui/title/bg.png"),
    new ResourceLocation("textures/gui/title/bg2.png")
}
 
private int time = 0;
private int index = 0;

@Override
public void updateScreen() {
    if (++time > 20 * 60)
        t = 0;
        if (++index >= RES.length) {
            index = 0;
        }
    }
}
 
 //где используется у тебя используеться mc.getTextureManager().bindTexture, типа того писать
 mc.getTextureManager().bindTexture(RES[index])
 
Назад
Сверху