Исходник Snowflakes in main menu [expensive 2.0] (снег в меню)

Начинающий
Статус
Оффлайн
Регистрация
21 Июл 2023
Сообщения
450
Реакции[?]
9
Поинты[?]
11K
1 - Использует неэффективные обьекты
2 - нарушеное построение патернов по ооп
3 - Проводит инитиализацию в отдельном методе
4 - Много лишних методов
5 - Использует цикл для того чтобы создавать новый обьект (он сам по себе создается и без него)
6 - Так же использует его чтобы удалять их
Тебе дальше перечислять?
ИНИТиализацию? зачем тут init нужен друг? ты бы запомнил хотя бы как слово пишется
 
Забаненный
Статус
Оффлайн
Регистрация
1 Дек 2023
Сообщения
7
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
да я вкурсе что можно было сделать шейдером и просто зарендерить его, но я болван
но мне пофик я болван, буду кодить своё решение


пастим это
|
v
MainMenuScreen.java:
    class snowflake {
        public float x;
        public float y;
        public float size;
        public float alpha;
    }

    int snowflake_count = 59;

    public List<snowflake> sfs = new ArrayList<snowflake>();

    boolean created = false;
    private final TimerUtil bolvan = new TimerUtil();

    protected void renderSnowflake(MatrixStack matrixStack, snowflake snowflake) {
        Fonts.msLight[new Random().nextInt(15, 22)].drawString(matrixStack, "*", snowflake.x, snowflake.y, ColorUtil.rgba(255, 255, 255, snowflake.alpha));
    }

    protected void createSnowflakeList() {
        if(!created) {
            for (int i = 1; i <= snowflake_count; i++) {
                snowflake s = new snowflake();
                s.x = new Random().nextInt(140, 1900);
                s.y = new Random().nextInt(-192, 33);
                s.alpha = new Random().nextInt(60, 255);
                s.size = 1;
                sfs.add(s);
                if (i == snowflake_count) { created = true; }
            }
        }
    }

    int f = 1;

    protected void createSnowflakes(MatrixStack matrixStack) {
        if(!created) { return; }

        long l = 10;
        if(bolvan.hasTimeElapsed(l)) {
            for (int i = 1; i <= sfs.size()-1; i++) {
                sfs.get(i).x = sfs.get(i).x - 1;
                sfs.get(i).y = sfs.get(i).y + 1;
                if(i <= sfs.size()-1) { bolvan.reset(); }
            }
        }

        for(int i = 0; i <= sfs.size()-1; i++){
            renderSnowflake(matrixStack, sfs.get(i));
        }

        if (sfs.get(sfs.size()-8).y > 60*f) {
            created = false;
            f++;
        }
        if(sfs.get(sfs.size()-8).y > 1050){
            for (int i = 1; i <= snowflake_count; i++) { sfs.remove(i); f-=0.5; }
        }
    }

    public void renderSnow(MatrixStack matrixStack) {
        createSnowflakeList();
        createSnowflakes(matrixStack);
    }
послеПосмотреть вложение 265507

пастим это
|
v
MainMenuScreen.java:
renderSnow(matrixStack);
послеПосмотреть вложение 265508

Пожалуйста, авторизуйтесь для просмотра ссылки.
тебе нужно присвоить статья 110 УК РФ доведение до самоубийства
 
Начинающий
Статус
Оффлайн
Регистрация
8 Май 2023
Сообщения
457
Реакции[?]
5
Поинты[?]
6K
да я вкурсе что можно было сделать шейдером и просто зарендерить его, но я болван
но мне пофик я болван, буду кодить своё решение


пастим это
|
v
MainMenuScreen.java:
    class snowflake {
        public float x;
        public float y;
        public float size;
        public float alpha;
    }

    int snowflake_count = 59;

    public List<snowflake> sfs = new ArrayList<snowflake>();

    boolean created = false;
    private final TimerUtil bolvan = new TimerUtil();

    protected void renderSnowflake(MatrixStack matrixStack, snowflake snowflake) {
        Fonts.msLight[new Random().nextInt(15, 22)].drawString(matrixStack, "*", snowflake.x, snowflake.y, ColorUtil.rgba(255, 255, 255, snowflake.alpha));
    }

    protected void createSnowflakeList() {
        if(!created) {
            for (int i = 1; i <= snowflake_count; i++) {
                snowflake s = new snowflake();
                s.x = new Random().nextInt(140, 1900);
                s.y = new Random().nextInt(-192, 33);
                s.alpha = new Random().nextInt(60, 255);
                s.size = 1;
                sfs.add(s);
                if (i == snowflake_count) { created = true; }
            }
        }
    }

    int f = 1;

    protected void createSnowflakes(MatrixStack matrixStack) {
        if(!created) { return; }

        long l = 10;
        if(bolvan.hasTimeElapsed(l)) {
            for (int i = 1; i <= sfs.size()-1; i++) {
                sfs.get(i).x = sfs.get(i).x - 1;
                sfs.get(i).y = sfs.get(i).y + 1;
                if(i <= sfs.size()-1) { bolvan.reset(); }
            }
        }

        for(int i = 0; i <= sfs.size()-1; i++){
            renderSnowflake(matrixStack, sfs.get(i));
        }

        if (sfs.get(sfs.size()-8).y > 60*f) {
            created = false;
            f++;
        }
        if(sfs.get(sfs.size()-8).y > 1050){
            for (int i = 1; i <= snowflake_count; i++) { sfs.remove(i); f-=0.5; }
        }
    }

    public void renderSnow(MatrixStack matrixStack) {
        createSnowflakeList();
        createSnowflakes(matrixStack);
    }
послеПосмотреть вложение 265507

пастим это
|
v
MainMenuScreen.java:
renderSnow(matrixStack);
послеПосмотреть вложение 265508

Пожалуйста, авторизуйтесь для просмотра ссылки.
а теперь объясни нормально
 
Начинающий
Статус
Оффлайн
Регистрация
8 Май 2023
Сообщения
457
Реакции[?]
5
Поинты[?]
6K
в теме всё вполне понятно, спастить можно если ты не еблан
Так у тебя написано MainMenuScreen, а класс snowflakes и потом ты ещё какой то ебучий скрин прикрепляешь
 
Начинающий
Статус
Оффлайн
Регистрация
13 Июн 2023
Сообщения
176
Реакции[?]
19
Поинты[?]
1K
Так у тебя написано MainMenuScreen, а класс snowflakes и потом ты ещё какой то ебучий скрин прикрепляешь
ну ты еблан чтоли?
написано же что пастим этот код после определённых строчек
1702654068509.png
 
Начинающий
Статус
Оффлайн
Регистрация
13 Июн 2023
Сообщения
176
Реакции[?]
19
Поинты[?]
1K
А можно сюда вместо * вставить пнг?
Java:
protected void renderSnowflake(MatrixStack matrixStack, snowflake snowflake) {
        int size = new Random().nextInt(15, 22);
        RenderUtil.Render2D.drawImage(new ResourceLocation("expensive/images/snow.png"), snowflake.x, snowflake.y, size, size, ColorUtil.rgba(255, 255, 255, snowflake.alpha));
    }
 
Пользователь
Статус
Оффлайн
Регистрация
3 Июл 2021
Сообщения
833
Реакции[?]
93
Поинты[?]
10K
да я вкурсе что можно было сделать шейдером и просто зарендерить его, но я болван
но мне пофик я болван, буду кодить своё решение


пастим это
|
v
MainMenuScreen.java:
    class snowflake {
        public float x;
        public float y;
        public float size;
        public float alpha;
    }

    int snowflake_count = 59;

    public List<snowflake> sfs = new ArrayList<snowflake>();

    boolean created = false;
    private final TimerUtil bolvan = new TimerUtil();

    protected void renderSnowflake(MatrixStack matrixStack, snowflake snowflake) {
        Fonts.msLight[new Random().nextInt(15, 22)].drawString(matrixStack, "*", snowflake.x, snowflake.y, ColorUtil.rgba(255, 255, 255, snowflake.alpha));
    }

    protected void createSnowflakeList() {
        if(!created) {
            for (int i = 1; i <= snowflake_count; i++) {
                snowflake s = new snowflake();
                s.x = new Random().nextInt(140, 1900);
                s.y = new Random().nextInt(-192, 33);
                s.alpha = new Random().nextInt(60, 255);
                s.size = 1;
                sfs.add(s);
                if (i == snowflake_count) { created = true; }
            }
        }
    }

    int f = 1;

    protected void createSnowflakes(MatrixStack matrixStack) {
        if(!created) { return; }

        long l = 10;
        if(bolvan.hasTimeElapsed(l)) {
            for (int i = 1; i <= sfs.size()-1; i++) {
                sfs.get(i).x = sfs.get(i).x - 1;
                sfs.get(i).y = sfs.get(i).y + 1;
                if(i <= sfs.size()-1) { bolvan.reset(); }
            }
        }

        for(int i = 0; i <= sfs.size()-1; i++){
            renderSnowflake(matrixStack, sfs.get(i));
        }

        if (sfs.get(sfs.size()-8).y > 60*f) {
            created = false;
            f++;
        }
        if(sfs.get(sfs.size()-8).y > 1050){
            for (int i = 1; i <= snowflake_count; i++) { sfs.remove(i); f-=0.5; }
        }
    }

    public void renderSnow(MatrixStack matrixStack) {
        createSnowflakeList();
        createSnowflakes(matrixStack);
    }
послеПосмотреть вложение 265507

пастим это
|
v
MainMenuScreen.java:
renderSnow(matrixStack);
послеПосмотреть вложение 265508

Пожалуйста, авторизуйтесь для просмотра ссылки.
прикольно
 
Начинающий
Статус
Оффлайн
Регистрация
13 Июн 2023
Сообщения
176
Реакции[?]
19
Поинты[?]
1K
Сверху Снизу