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

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

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем EvilEnginer, 14 янв 2014.

?

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

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

    15 голосов
    83,3%
  2. Нет не нравится.

    3 голосов
    16,7%
Статус темы:
Закрыта.
  1. Автор темы
    EvilEnginer

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

    Баллы:
    88
    Имя в Minecraft:
    EvilEnginer
    В общем я тут почитал английские гайды по кодерпаку и сделал нестандартные прозрачные кнопки главного меню, цвет текста при наведении мыши на кнопку может быть любым. И сейчас дорогие друзья я вам расскажу как сделать кнопки как на скриншоте.
    [​IMG]

    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
     
    Последнее редактирование: 29 июн 2014
    DoG743, Benseeley, savaekb2013 и 4 другим нравится это.
  2. Хостинг MineCraft
    <
  3. Laster

    Laster Участник Пользователь

    Баллы:
    33
    Очень интересно,подобное еще не пробовал делать.Молодцом.Желаю посмотреть исходники.
     
  4. danbka333

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

    Баллы:
    103
    Работы на 5 минут... Особенно для тех кто знает как работать opengl, а убирание копирайта самое просто что можно было сделать. А ник... тю... так это вобще самое наипростейшее.
     
    dark32 нравится это.
  5. Автор темы
    EvilEnginer

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

    Баллы:
    88
    Имя в Minecraft:
    EvilEnginer
    Я не знаток явы особо. Только учусь ;). Нашёл кое что интересное в сети на инглише вот и решил поделиться со всеми. Что у меня в планах:
    1) Сделать фон таким чтобы вместо панорамы было слайдшоу.
    2) Кнопки и лого Minecraft сдвинуть влево и уменьшить
    3) При загрузке игры будет проигрываться гифка как у cборок Feed The Beast.
    4) Описать всё мануалом.
     
    Последнее редактирование: 14 янв 2014
  6. danbka333

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

    Баллы:
    103
    Если вы хотите остаться в этом разделе, то вам нужен гайд как сделать, а не просто скрин. Модератор может закрыть тему.
     
  7. Автор темы
    EvilEnginer

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

    Баллы:
    88
    Имя в Minecraft:
    EvilEnginer
    Окей гайд будет
     
  8. dark32

    dark32 А где твой ТЗ? Пользователь

    Баллы:
    123
    Имя в Minecraft:
    dark32
    Опа.. как раз мой раздел...
    В целом неплохо, но можно и лучше.

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

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

    Баллы:
    88
    Имя в Minecraft:
    EvilEnginer
    Гайд написан
     
  10. MySt1k

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

    Баллы:
    173
    Можно скрин?
     
  11. danbka333

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

    Баллы:
    103
    Товарисч вы ослепли. (Без обид)

    Скрин был изначально в шапке.
     
  12. MySt1k

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

    Баллы:
    173
    После редактирования темы он появился, а раньше была битая картинка.
     
  13. Xfester12

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

    Баллы:
    88
    Имя в Minecraft:
    Xfester
    Можно исходники?
     
  14. danbka333

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

    Баллы:
    103
    Для кого туториал? ммм?
     
  15. Автор темы
    EvilEnginer

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

    Баллы:
    88
    Имя в Minecraft:
    EvilEnginer
    Это туториал Xfester12 прямой ссылки не будет. Он написан для того чтобы люди научились чему то новому прочитав этот гайд, а не просто так использовали чужие коды. Пишите в тему если что то не получается отвечу по мере возможности.
     
  16. Xfester12

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

    Баллы:
    88
    Имя в Minecraft:
    Xfester
    EvilEnginer, а за денежку?
     
  17. Автор темы
    EvilEnginer

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

    Баллы:
    88
    Имя в Minecraft:
    EvilEnginer
    А за денежку если делать самому не хочется я помогу настроить эту штуку для вашей сборки. Оплата по факту, я демонстрирую работоспособность этой штуки через скайп на боевом лаунчере (сашка например) а вы платите мне за сделанную мною работу (а я кидаю вам результат проделанной работы это zip архив c minecraft.jar и forge.jar под вашу сборку). Предварительно мы обговорим чтобы вы хотели увидеть а я назову свою цену за работу. Но будет это уже завтра. Потому что сейчас уже у меня 21:00 и мне лень возиться + завтра в универ топать к утру.
     
    Последнее редактирование: 14 янв 2014
  18. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Последнее редактирование: 15 янв 2014
    Alexgrist нравится это.
Статус темы:
Закрыта.

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