Туториал Удалить

Понравился ли вам гайд?

  • Да нравится.

    Голосов: 15 83,3%
  • Нет не нравится.

    Голосов: 3 16,7%

  • Всего проголосовало
    18
Статус
Закрыто для дальнейших ответов.

EvilEnginer

Активный участник
Пользователь
Баллы
88
Имя в Minecraft
EvilEnginer
В общем я тут почитал английские гайды по кодерпаку и сделал нестандартные прозрачные кнопки главного меню, цвет текста при наведении мыши на кнопку может быть любым. И сейчас дорогие друзья я вам расскажу как сделать кнопки как на скриншоте.
6a6cb0c9b4abfb2b718c643e94cbde1d.png


1) В Project Explorer в Eclipse ищем папку net.minecraft.src
2) Создаём класс в этой папке и называем его CustomButton
3) В созданный файл копируем следующий код.
Код:
package net.minecraft.src;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiButton;

public class CustomButton extends GuiButton {

    public CustomButton(int i, int j, int k, String s)
    {
        this(i, j, k, 200, 20, s);
    }

    public CustomButton(int i, int j, int k, int l, int i1, String s)
    {
        super(i, j, k, l, i1, s);
    }

    protected int getHoverState(boolean flag)
    {
        byte byte0 = 1;
        if (!enabled)
        {
            byte0 = 0;
            }
        else if (flag)
        {
            byte0 = 2;
        }
        return byte0;
        }

    public void drawButton(Minecraft mc, int mx, int my)
    {
        FontRenderer fontrenderer = mc.fontRenderer;
        boolean flag = mx >= xPosition && my >= yPosition && mx < xPosition + width && my < yPosition + height;  //Flag, tells if your mouse is hovering the button
        if (flag)
        { // Hover Action
            drawBorderedRect(xPosition, yPosition, xPosition + width, yPosition + height, 1, 0x90FFFFFF, 0x80000000);
            drawCenteredString(fontrenderer, displayString, xPosition + width / 2, yPosition + (height - 8) / 2, 0xADFF2F); //0xADFF2F - html color code, google it.
        }
        else { // Normal
            drawBorderedRect(xPosition, yPosition, xPosition + width, yPosition + height, 1, 0x90FFFFFF, 0x60000000);
            drawCenteredString(fontrenderer, displayString, xPosition + width / 2, yPosition + (height - 8) / 2, 0xFFCCCCCC);
        }
    }

}

Строка 40 в коде меняет цвет текста при наведении мыши на кнопку код цвета HTML

4) Сохраняем работу
5) В ProjectExplorer ищем папку net.minecraft.client.gui открываем файл Gui.java
после protected float zLevel; строчка 16 вставляем этот код
Код:
public void drawBorderedRect(int x, int y, int x1, int y1, int size, int borderC, int insideC)
    {
        drawRect(x + size, y + size, x1 - size, y1 - size, insideC);
        drawRect(x + size, y + size, x1, y, borderC);
        drawRect(x, y, x + size, y1, borderC);
        drawRect(x1, y1, x1 - size, y + size, borderC);
        drawRect(x, y1 - size, x1, y1, borderC);
    }
6) Сохраняем работу
7) Открываем файл GuiMainMenu.java
a) Ищем private void addSingleplayerMultiplayerButtons(int par1, int par2)
б) В блоке 1
Код:
private void addSingleplayerMultiplayerButtons(int par1, int par2)
    {
        this.buttonList.add(new CustomButton(1, this.width / 2 - 100, par1 + 90, I18n.getString("menu.singleplayer")));
        this.buttonList.add(new CustomButton(2, this.width / 2 - 100, par1 + par2 * 1 + 90, I18n.getString("menu.multiplayer")));
        //If Minecraft Realms is enabled, halve the size of both buttons and set them next to eachother.
        fmlModButton = new CustomButton(6, this.width / 2 - 100, par1 + par2 * 2 + 90, I18n.getString("Mods"));
        this.buttonList.add(fmlModButton);
        buttonPar1 = par1;
        buttonPar2 = par2;
        minecraftRealmsButton = new CustomButton(14, this.width / 2 - 100, par1 + par2 * 2, I18n.getString("menu.online"));
        minecraftRealmsButton.width = 98;
        minecraftRealmsButton.xPosition = this.width / 2 - 100;
        this.minecraftRealmsButton.drawButton = false;
    }
и блоке 2

Код:
this.buttonList.add(new CustomButton(0, this.width / 2 - 100, j + 72 + 12, 98, 20, I18n.getString("menu.options")));
        this.buttonList.add(new CustomButton(4, this.width / 2 + 2, j + 72 + 12, 98, 20, I18n.getString("menu.quit")));

Заменим слова GuiButton на CustomButton по образцу.

8)
В начале файла GuiMainMenu.java после всех import пишем свой
import net.minecraft.src.CustomButton;

Гайд будет обновляться и дополняться. Прошу поставить мне лайк если мой первый гайд был для Вас полезным. Всем спасибо.

UP
 
Последнее редактирование:
Очень интересно,подобное еще не пробовал делать.Молодцом.Желаю посмотреть исходники.
 
В общем я тут почитал английские гайды по кодерпаку и сделал нестандартные прозрачные кнопки главного меню, цвет текста при наведении мыши на кнопку может быть любым. Жду ваших комментариев. Если соберу положительные отзывы выложу исходники, которые убирают копирайты forge, пишут ваш ник, и добавляют кнопки на главном меню.
6a6cb0c9b4abfb2b718c643e94cbde1d.png
Работы на 5 минут... Особенно для тех кто знает как работать opengl, а убирание копирайта самое просто что можно было сделать. А ник... тю... так это вобще самое наипростейшее.
 
Работы на 5 минут... Особенно для тех кто знает как работать opengl, а убирание копирайта самое просто что можно было сделать. А ник... тю... так это вобще самое наипростейшее.
Я не знаток явы особо. Только учусь ;). Нашёл кое что интересное в сети на инглише вот и решил поделиться со всеми. Что у меня в планах:
1) Сделать фон таким чтобы вместо панорамы было слайдшоу.
2) Кнопки и лого Minecraft сдвинуть влево и уменьшить
3) При загрузке игры будет проигрываться гифка как у cборок Feed The Beast.
4) Описать всё мануалом.
 
Последнее редактирование:
Я не знаток явы особо. Только учусь ;). Нашёл кое что интересное в сети на инглише вот и решил поделиться со всеми. Что у меня в планах:
1) Сделать фон таким чтобы вместо панорамы было слайдшоу.
2) Кнопки и лого Minecraft сдвинуть влево и уменьшить
3) При загрузке игры будет проигрываться гифка как у cборок Feed The Beast.
4) Cделать полученный год общедоступным.
Если вы хотите остаться в этом разделе, то вам нужен гайд как сделать, а не просто скрин. Модератор может закрыть тему.
 
Опа.. как раз мой раздел...
В целом неплохо, но можно и лучше.

Лично мне не нравятся всякие модификации главного меню и убивания копирайтов. Особенно если это нужно помещать в minecraft.jar, а не в папку mod|coremod
 
Опа.. как раз мой раздел...
В целом неплохо, но можно и лучше.

Лично мне не нравятся всякие модификации главного меню и убивания копирайтов. Особенно если это нужно помещать в minecraft.jar, а не в папку mod|coremod
Гайд написан
 
Можно исходники?
 
Можно исходники?
Это туториал Xfester12 прямой ссылки не будет. Он написан для того чтобы люди научились чему то новому прочитав этот гайд, а не просто так использовали чужие коды. Пишите в тему если что то не получается отвечу по мере возможности.
 
EvilEnginer, а за денежку?
 
EvilEnginer, а за денежку?
А за денежку если делать самому не хочется я помогу настроить эту штуку для вашей сборки. Оплата по факту, я демонстрирую работоспособность этой штуки через скайп на боевом лаунчере (сашка например) а вы платите мне за сделанную мною работу (а я кидаю вам результат проделанной работы это zip архив c minecraft.jar и forge.jar под вашу сборку). Предварительно мы обговорим чтобы вы хотели увидеть а я назову свою цену за работу. Но будет это уже завтра. Потому что сейчас уже у меня 21:00 и мне лень возиться + завтра в универ топать к утру.
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.
Назад
Верх