[f1rst1k] Да простит меня народ.

1,990
18
105
Не хочу пользоваться ЛС, оно на форуме очень неприметное и его легко незаметить.
Поэтому заранее прошу прощения за создание топика, из-за одного сообщения фёрстику. Хотя, стойте, это же флудилка, вот не пофиг?
Ну ладно, суть вот:
f1rst1k как-то на javatalks просил помощи по методу с массивами, вот ответ:
http://javatalks.ru/topics/41703?page=1#!prettyPhoto
Иии скрин кода с выводом:
Y6IeenS.png
 
1,990
18
105
А, это я прям в своем проекте тестил. Свой скриптовый язык для игр делаю, а это его движок (языка), там и парсер (который уже готов) и все остальное будет.
Сейчас там пока есть типы данных, ключевые слова, поля, конструкторы и объекты, лал. Из этого работает всё.
Остались сами скрипты, которые будут выполняться в игре. А их уже хардкодить надо (эмуляция будет днище-слоу) и то в самом игровом движке. Тут же конструктор, тоже самопальный.
Могу даже скрин скинуть:
a1e1wKd.png
А это объект, которых аж 4 штуки на экране:
OowgDUW.png
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Ага, а такой штуке, как UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); в самом начале программы нас никто не учил, верно?
[merge_posts_bbcode]Добавлено: 21.05.2014 18:38:31[/merge_posts_bbcode]

Похоже слегка, кстати, на JSON.
 
1,990
18
105
Вас может и не учили. А я специально вызов убрал.
CRGD9EN.png

С ним слишком коньстрастно.
wxyXQcn.png
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
А по моему куда лучше получилось. Хочешь сказать, что дурацкие явошные менюшки красивее?
 
1,990
18
105
Мне на данный момент абсолютно чихать на GUI, как он выглядит.
Хотя и стараюсь делать нормальное расположение элементов\etc, но это для удобства и интуитивности. А заодно чтобы вместо float'ов мне не вводили в ненужные поля стринги или вместо текстур не ставили цифры, я делаю ограничения на каждый тип ввода или вообще отдельную менюшку для некоторых типов значений.
Красота пока мало волнует. А вот функционал и скорость работы в редакторе - волнует.
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Ну раз тебя это так волнует, мог бы и оставить ту строку, где она была.
 
771
5
Обнаружил ошибку:
Он не принимает массивы примитивных типов(int, boolean и т.д).
Если написать туда new Integer[], то крашит.
 
1,990
18
105
С примитивами да, не получится. Для них придется писать отдельный метод с кучей switch\case. Точнее с кучей условий.
ifQuSHA.png

Таки вот:
ePsv4Ji.png
Только тебе такое для каждого типа придется писать.
Эх, если бы можно было только объявить абстрактный массив для примитивов, всё было бы куда легче.
 
771
5
Сделал пока так:
Код:
@Beta
    public static void increaseArray(Class<?> clazz, int length, String... args){
        Object[] oldArray = null;
        for(Field field : clazz.getDeclaredFields()){
            field.setAccessible(true);
            try{
                for(String s : args){
                    if(field.getName().equals(s)){
                        if(Modifier.isFinal(field.getModifiers())){
                            Field modfield = Field.class.getDeclaredField("modifiers");
                            modfield.setAccessible(true);
                            modfield.setInt(field, field.getModifiers() & ~Modifier.FINAL);
                        }
                        oldArray = (Object[])field.get(null);
                        Object newArray = Array.newInstance(field.get(null).getClass().getComponentType(), length);
                        System.arraycopy(oldArray, 0, newArray, 0, oldArray.length);
                        field.set(null, newArray);
                    }
                }
            }catch(NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e){
                e.printStackTrace();
            }
        }
    }
Нифига с этими примитивами не получается...
 
1,990
18
105
Нет, я лично в Eclipse сижу, мне и там норм.
Переходить лень.
 
Сверху