Вопрос Как сделать закругление борда?

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
4 Фев 2023
Сообщения
2
Реакции
0

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Добрый день. Пишу свой клиент. База: 1.16.5 mcp.
Хочу реализовать закругленный борд. Подскажите, пожалуйста, как такое реализовать? Не надо мне давать уже готовый код, моя задача — понять, как это реализовать, и самому реализовать.

Моя цель -
Пожалуйста, авторизуйтесь для просмотра ссылки.

Что сейчас имеется -
Пожалуйста, авторизуйтесь для просмотра ссылки.


Код:
code:
Expand Collapse Copy
    private void func_238447_a_(MatrixStack matrixStack, ScoreObjective objective) {
        final Scoreboard scoreboard = objective.getScoreboard();

        List<Score> scores = scoreboard.getSortedScores(objective).stream()
                .filter(score -> !score.getPlayerName().startsWith("#"))
                .collect(Collectors.toList());

        if (scores.size() > 15) scores = scores.subList(scores.size() - 15, scores.size());

        final List<Pair<Score, ITextComponent>> scoreComponents = new ArrayList<>(scores.size());
        final ITextComponent title = objective.getDisplayName();

        final int titleWidth = this.getFontRenderer().getStringPropertyWidth(title);
        int maxWidth = titleWidth;
        final int colonSpaceWidth = this.getFontRenderer().getStringWidth(": ");


        for (Score score : scores) {
            final ScorePlayerTeam team = scoreboard.getPlayersTeam(score.getPlayerName());
            final ITextComponent playerName = ScorePlayerTeam.func_237500_a_(team, new StringTextComponent(score.getPlayerName()));
            scoreComponents.add(Pair.of(score, playerName));

            final int scoreWidth = this.getFontRenderer().getStringPropertyWidth(playerName)
                    + colonSpaceWidth
                    + this.getFontRenderer().getStringWidth(Integer.toString(score.getScorePoints()));
            maxWidth = Math.max(maxWidth, scoreWidth);
        }

        final int totalHeight = scores.size() * 10 + 12;
        final int startY = this.scaledHeight / 2 + totalHeight / 3;
        final int startX = this.scaledWidth - maxWidth - 10;
        final int backgroundColor = this.mc.gameSettings.getTextBackgroundColor(1.5F);
        final int titleBackgroundColor = this.mc.gameSettings.getTextBackgroundColor(1.5F);

        for (int i = 0; i < scoreComponents.size(); i++) {
            final Pair<Score, ITextComponent> pair = scoreComponents.get(i);
            final ITextComponent component = pair.getSecond();
            final int yPos = startY - (i + 1) * 9;
            final int rightEdge = this.scaledWidth - 3 + 2;

            fill(matrixStack, startX - 2, yPos, rightEdge, yPos + 9, backgroundColor);

            this.getFontRenderer().func_243248_b(matrixStack, component, (float)startX, (float)yPos, -1);

            if (i == scoreComponents.size() - 1) {
                fill(matrixStack, startX - 2, yPos - 10, rightEdge, yPos, titleBackgroundColor);

                final int titleX = startX + (maxWidth - titleWidth) / 2;
                this.getFontRenderer().func_243248_b(matrixStack, title, (float)titleX, (float)(yPos - 9), -1);
            }
        }
    }
 
Не знаю что тут конкретно за что отвечает но думаю строка
41 строка:
Expand Collapse Copy
fill(matrixStack, startX - 2, yPos, rightEdge, yPoy + 9, backgroundColor);
Это фон который те нужно заменить. Вместо него можешь взять roundedRect из рендер утилки либо если хочешь как на скрине делай свой рект по тому же алгоритму только для отрисовки юзай
Java:
Expand Collapse Copy
AbstractGui.fill(MatrixStack matrixStack, int minX, int minY, int maxX, int maxY, int color)
Вместо шейдера
 
Не знаю что тут конкретно за что отвечает но думаю строка
41 строка:
Expand Collapse Copy
fill(matrixStack, startX - 2, yPos, rightEdge, yPoy + 9, backgroundColor);
Это фон который те нужно заменить. Вместо него можешь взять roundedRect из рендер утилки либо если хочешь как на скрине делай свой рект по тому же алгоритму только для отрисовки юзай
Java:
Expand Collapse Copy
AbstractGui.fill(MatrixStack matrixStack, int minX, int minY, int maxX, int maxY, int color)
Вместо шейдера
Спасибо конечно, но что за "рендер утилки"? Где её можно взять?
 
Спасибо конечно, но что за "рендер утилки"? Где её можно взять?
Рендер утилка - класс, в котором прописан основной рендер вроде: обычный рект с закругленными углами, свечения, отображения картинки и тд. Вот например рендер утилка под 1.16.5
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Назад
Сверху Снизу