1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Как сделать каждые 5 сек смену фона в меню?

Тема в разделе "Модификации клиента", создана пользователем Jayman, 1 ноя 2014.

  1. Автор темы
    Jayman

    Jayman Активный участник Пользователь

    Баллы:
    76
    Мне нужно, чтобы каждые 5 секунд изменялся статический фон в главном меню.
     
  2. Konstantin773

    Konstantin773 Старожил Пользователь

    Баллы:
    153
    Skype:
    Konstantin77313
    Имя в Minecraft:
    K773
    1. Создать таймер, который каждые 5 секунд будет менять ResourceLocation фона
    2. Внутри метода updateScreen() отсчитывать 100 тиков и менять фон.
    Вот пример. Фон берется из assets/textures/bg/. Файлы с именем bg(0-2).png
    Код:
    int counter = 0;
    ResourceLocation bg = new ResourceLocation("textures/bg/bg"+ new Random().nextInt(3)+".png");
    public void updateScreen(){
         counter++;
         if(counter==100){
               bg = new ResourceLocation("textures/bg/bg"+ new Random().nextInt(3)+".png");
               counter = 0;
         }
    }
    
     
  3. Автор темы
    Jayman

    Jayman Активный участник Пользователь

    Баллы:
    76
    Я правильно сделал?
    int counter = 0;
    ResourceLocation bg = new ResourceLocation("textures/bg/bg"+ new Random().nextInt(3)+".png");
    public void updateScreen()
    {
    counter++;
    if(counter==100){
    bg = new ResourceLocation("textures/bg/bg"+ new Random().nextInt(3)+".png");
    counter = 0;
    }

    }
    private void renderSkybox(int par1, int par2, float par3)

    {
    GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    Tessellator tessellator = Tessellator.instance;

    this.mc.getTextureManager().bindTexture(new ResourceLocation("minecraft:"+bg));
    tessellator.startDrawingQuads();
    float f1 = this.width > this.height ? 120.0F / (float)this.width : 120.0F / (float)this.height;
    float fy = (float)this.height * f1 / 256.0F;
    float fx = (float)this.width * f1 / 256.0F;
    double k = this.width;
    double l = this.height;
    tessellator.addVertexWithUV((double)k , (double)l, (double)this.zLevel, 0.5 + fx, 0.5 + fy);
    tessellator.addVertexWithUV((double)k , 0.0D, (double)this.zLevel, 0.5 + fx, 0.5 - fy);
    tessellator.addVertexWithUV(0.0D , 0.0D, (double)this.zLevel, 0.5 - fx, 0.5 - fy);
    tessellator.addVertexWithUV(0.0D , (double)l, (double)this.zLevel, 0.5 - fx, 0.5 + fy);
    tessellator.draw();
    }
     
  4. Konstantin773

    Konstantin773 Старожил Пользователь

    Баллы:
    153
    Skype:
    Konstantin77313
    Имя в Minecraft:
    K773
    this.mc.getTextureManager().bindTexture(new ResourceLocation("minecraft:"+bg));
    измени на
    this.mc.getTextureManager().bindTexture(bg);
     
  5. Автор темы
    Jayman

    Jayman Активный участник Пользователь

    Баллы:
    76
    Всё работает, но как сделать, чтобы фон изменялся не резко, а плавно
     
  6. Konstantin773

    Konstantin773 Старожил Пользователь

    Баллы:
    153
    Skype:
    Konstantin77313
    Имя в Minecraft:
    K773
    Добавь перменную типа float, например float alpha = 0.0f';
    после counter++;
    Код:
    if(alpha<1.0f && counter<25) alpha+=0.05f;
    if(alpha>0.0f && counter>79) alpha-=0.05f;
    
    А GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); измени на GL11.glColor4f(1.0F, 1.0F, 1.0F, alpha);
     
    Последнее редактирование: 1 ноя 2014
  7. Автор темы
    Jayman

    Jayman Активный участник Пользователь

    Баллы:
    76
    Не работает. Как и до этого фон меняется резко.
    Вот, если нужно:
    int counter = 0;
    public float alpha = 0.0f;
    ResourceLocation bg = new ResourceLocation("textures/bg/"+ new Random().nextInt(5)+".png");
    public void updateScreen()
    {
    counter++;
    if(alpha<1.0f && counter<25) alpha+=0.05f;
    if(alpha>1.0f && counter>79) alpha-=0.05f;
    if(counter==100){
    bg = new ResourceLocation("textures/bg/"+ new Random().nextInt(5)+".png");
    counter = 0;
    }

    }
    private void renderSkybox(int par1, int par2, float par3)

    {
    GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
    GL11.glColor4f(1.0F, 1.0F, 1.0F, alpha);
    Tessellator tessellator = Tessellator.instance;

    this.mc.getTextureManager().bindTexture(bg);
    tessellator.startDrawingQuads();
    float f1 = this.width > this.height ? 120.0F / (float)this.width : 120.0F / (float)this.height;
    float fy = (float)this.height * f1 / 256.0F;
    float fx = (float)this.width * f1 / 256.0F;
    double k = this.width;
    double l = this.height;
    tessellator.addVertexWithUV((double)k , (double)l, (double)this.zLevel, 0.5 + fx, 0.5 + fy);
    tessellator.addVertexWithUV((double)k , 0.0D, (double)this.zLevel, 0.5 + fx, 0.5 - fy);
    tessellator.addVertexWithUV(0.0D , 0.0D, (double)this.zLevel, 0.5 - fx, 0.5 - fy);
    tessellator.addVertexWithUV(0.0D , (double)l, (double)this.zLevel, 0.5 - fx, 0.5 + fy);
    tessellator.draw();
    }
     
  8. kursorik

    kursorik Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    kursorik
    Не работает!
    К сожалению не работает!
     
  9. Автор темы
    Jayman

    Jayman Активный участник Пользователь

    Баллы:
    76
    Зачем апнул старую тему?
     
  10. kursorik

    kursorik Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    kursorik
    Помоги, бро!
     
  11. Автор темы
    Jayman

    Jayman Активный участник Пользователь

    Баллы:
    76
    У меня тоже это не работало. Плавности не было. Потом забил на это меню.
     
  12. kursorik

    kursorik Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    kursorik
    Да мне хотябы просто фон... Не то что плавность и переключение... Хотя видел на Century Mine такой меню с плавностью, однако там 1.6.4
     
  13. Ex4ak01

    Ex4ak01 Активный участник Пользователь

    Баллы:
    78
    Skype:
    mc_kent_01
    Имя в Minecraft:
    Ex4ak
    Возьми mcp и клиет Century Mine декомпилируй и посмотри код)
     
  14. kursorik

    kursorik Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    kursorik
    Уже)
     
  15. Fesson

    Fesson Активный участник

    Баллы:
    63
    Имя в Minecraft:
    azamat97
    А вы не можете посмотреть в ванильном коде? Так те же картинки + плавный переход.
     
  16. Skrillero

    Skrillero Активный участник Пользователь

    Баллы:
    68
  17. Автор темы
    Jayman

    Jayman Активный участник Пользователь

    Баллы:
    76
    Зачем?
     
  18. Skrillero

    Skrillero Активный участник Пользователь

    Баллы:
    68
    Все таки разобраться как же сделать сделать смену картинок
     
  19. Автор темы
    Jayman

    Jayman Активный участник Пользователь

    Баллы:
    76
    А зачем тогда апать?
     
  20. Skrillero

    Skrillero Активный участник Пользователь

    Баллы:
    68
    Может кто-то еще знает,как проблему исправить
     

Поделиться этой страницей