Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

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

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

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

    Баллы:
    76
    Мне нужно, чтобы каждые 5 секунд изменялся статический фон в главном меню.
     
  2. Хостинг MineCraft
    <
  3. 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;
         }
    }
    
     
  4. Автор темы
    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();
    }
     
  5. Konstantin773

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

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

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

    Баллы:
    76
    Всё работает, но как сделать, чтобы фон изменялся не резко, а плавно
     
  7. 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
  8. Автор темы
    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();
    }
     
  9. kursorik

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

    Баллы:
    76
    Имя в Minecraft:
    kursorik
    Не работает![DOUBLEPOST=1422061315,1422058513][/DOUBLEPOST]
    К сожалению не работает!
     
  10. Автор темы
    Jayman

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Баллы:
    78
    Имя в Minecraft:
    LightSunrider
    Там куб с вывернутыми текстурами(вроде правильно сказал). Никакого плавного перехода там нет.
     
  18. Skrillero

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

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

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

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

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

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

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

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

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