- Версия(и) Minecraft
- 1.7.10
Иногда бывают ситуации когда нужно воспроизвести gif анимацию, и тогда в голову приходит мысля разбить её на кадры и воспроизводить их по очереди, но это не удобно. После разбития её на кадры получится много картинок которые будут весить в разы больше самой гифки. Я предлагаю вам не делать так, ведь это можно сделать проще! Вам нужно будет скачать 1 класс, впихнуть его к себе в проект и написать пару строк кода в одной из которых нужно будет указать путь до вашей гифки, ну и воспроизвести её методом gifPlay();. (пример ниже)
И да ещё можно остановить воспроизведение (setConditionStop) или продолжить (setConditionPlay()) (пример ниже) - не знаю может кому надо.
Java:
public class Gui_MainMenu extends GuiScreen {
private Gif gif = new Gif(new ResourceLocation(Main.MODID, "textures/test.gif"));
@Override
public void drawScreen(int x, int y, float tick) {
//Воспроизведение гифки (входные параметры: xPos, yPos, width, height, scale (не знаю зачем он тут нужен но пускай будет))
gif.gifPlay(0, 0, width, height, 1);
super.drawScreen(x, y, tick);
}
}
И да ещё можно остановить воспроизведение (setConditionStop) или продолжить (setConditionPlay()) (пример ниже) - не знаю может кому надо.
Java:
public class Gui_MainMenu extends GuiScreen {
Gif gif = new Gif(new ResourceLocation(Main.MODID, "textures/test.gif"));
@Override
public void initGui() {
buttonList.add(new GuiButton(0, 45, 122, 190, 20, "ПРОДОЛЖИТЬ"));
buttonList.add(new GuiButton(1, 45, 144, 190, 20, "ОСТАНОВИТЬ"));
}
@Override
protected void actionPerformed(GuiButton button) {
switch (button.id) {
case 0:
//Продолжить воспроизведение гифки
gif.setConditionPlay();
break;
case 1:
//Остановить воспроизведение гифки
gif.setConditionStop();
break;
}
super.actionPerformed(button);
}
@Override
public void drawScreen(int x, int y, float tick) {
//Воспроизведение гифки (входные параметры: xPos, yPos, width, height, scale (не знаю зачем он тут нужен но пускай будет))
gif.gifPlay(0, 0, width, height, 1);
super.drawScreen(x, y, tick);
}
}