Рендер от первого лица

Доброго времени суток, при коддинге оружия (нет, это не очередной стулкер прожект как бы вам хотелось) задался вопросом, при виде от первого лица мы рендерим руки и оружие, и получается это успешно, но как реализовать рендер так, что бы он появлялся только при нажатии кнопки например Num3, действовал без нажатия, а при повторном нажатии пропадал. Делается это всё для рендера прицела или другого дополнительного тактического снаряжения. 
Заранее спасибо.
 
То есть тебе нужно чтобы рендер можно было отключить в нужный момент, так?
 
Подобное осуществлял с фонарем по-быдлокодерски. Сейчас может вспомню.
 
Так ну собственно вот мой быдлокод.

Код:
boolean updatePress = false;
boolean updatePressStoper = false;

public void checkButton(int button)
{
        if(Keyboard.isKeyDown(button) && !updatePress && !updatePressStoper)
        {
            updatePress = true;
            updatePressStoper = true;
        }
        else if(Keyboard.isKeyDown(button) && updatePress && !updatePressStoper)
        {
            updatePress = false;
            updatePressStoper = true;
        }
        if(!Keyboard.isKeyDown(button) && updatePressStoper)
        {
            updatePressStoper = false;
        }
}

методРенедра()
{
        checkButton(Keyboard.KEY_NUMPAD3);
        if(updatePress)
        {
            ренденим...
        }
}
Попробуй так.
 
MrCreppo написал(а):
Так ну собственно вот мой быдлокод.

Код:
boolean updatePress = false;
boolean updatePressStoper = false;

public void checkButton(int button)
{
        if(Keyboard.isKeyDown(button) && !updatePress && !updatePressStoper)
        {
            updatePress = true;
            updatePressStoper = true;
        }
        else if(Keyboard.isKeyDown(button) && updatePress && !updatePressStoper)
        {
            updatePress = false;
            updatePressStoper = true;
        }
        if(!Keyboard.isKeyDown(button) && updatePressStoper)
        {
            updatePressStoper = false;
        }
}

методРенедра()
{
        checkButton(Keyboard.KEY_NUMPAD3);
        if(updatePress)
        {
            ренденим...
        }
}
Попробуй так.
Вау-вау-вау, всё работает. Огромное спасибо.
Хм, и тогда ещё один вопрос, можем ли мы каким-то таким же образом менять текстуру у модели, якобы менять камуфляж у оружия?
 
Да. Во флансе глянь. Сделай мапу иконок и в getIcon возвращай разные значения. По крайней мере я думая так
 
Вот как то так
Код:
    /* это смена значения textureChange. Появляются новые переменные:
     * plusMinus - при true повышается значение, при false понижается
     * textureAmount - количество текстур. в примере из четыре (нулевая тоже считается).
     */ 
    public void checkButtonTexture(int button, boolean plusMinus, int textureAmount)
    {
        if(Keyboard.isKeyDown(button) && !updatePressStoper && plusMinus)
        {
            textureChange++;
            updatePressStoper = true;
        }
        else if(Keyboard.isKeyDown(button) && !updatePressStoper && !plusMinus)
        {
            textureChange--;
            updatePressStoper = true;
        }
        if(!Keyboard.isKeyDown(button) && updatePressStoper)
        {
            updatePressStoper = false;
        }

        if(textureChange > textureAmount)
        {
            textureChange = textureAmount;
        }
        else if(textureChange < 0)
        {
            textureChange = 0;
        }
    }
методРендера()
{
        //тут у нас понижение значения textureChange
        checkButtonTexture(Keyboard.KEY_LEFT, false, 3);
        //тут у нас повышение значения textureChange
        checkButtonTexture(Keyboard.KEY_RIGHT, true, 3);
        /*тут мы присваиваем текстуру
         * скажем у нас значение textureChange = 2, тогда текстура будет называться texture2.png
         * если textureChange = 0, то текстура называется texture0.png
         */
        Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation ("weapons", "textures/weapons/pukanovar3000/texture" + textureChange + ".png"));
                рендерим...
}
[merge_posts_bbcode]Добавлено: 23.02.2015 21:13:28[/merge_posts_bbcode]

Собсна баги в коде. Сразу сильно вскакивает переменная. Хз как править. Лучше текстуры задавать не кнопками а переменной в самом предмете.
 
IndustrialMC написал(а):
Хм, а тогда как лучше это реализовать?
Всякие камуфляжи и кастомизация в общем - переменные в предмет пиши а потом получай их рендером.
 
Назад
Сверху