Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Lock drag

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
8 Янв 2023
Сообщения
43
Реакции
1
Всем нихао, пример как сделать фиксатор драгейбла (Drag) на любой базе (везде одна система). Самые простые координаты, кто захочет может по примеру сделать больше

В классе Dragging
Копируем код и создаем метод

Java:
Expand Collapse Copy
    public void draw(MatrixStack, matrixStack, int mouseX, int mouseY) {
        if (dragging) {
            xPos = (mouseX - startX);
            yPos = (mouseY - startY);
            MainWindow sr = Minecraft.getInstance().getMainWindow();
            float radius = 5;
           
            if (xPos + (width / 2) >= sr.getScaledWidth() / 2 - radius && xPos + (width / 2) <= sr.getScaledWidth() / 2 + radius && (mouseX >= xPos)) {
                xPos = sr.getScaledWidth() / 2 - (width / 2);
                // rect coord: x = sr.getScaledWidth() / 2; y = 0; width = 1, height = sr.getScaledHeight();
            }
        }
    }

Далее заходим в класс ChatScreen

в методе render

Java:
Expand Collapse Copy
        DragManager.draggables.values().forEach(dragging -> {
            if (dragging.getModule().isState()) {
                dragging.draw(matrixStack, mouseX, mouseY);
            }
        });
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ладно
 
Всем нихао, пример как сделать фиксатор драгейбла (Drag) на любой базе (везде одна система). Самые простые координаты, кто захочет может по примеру сделать больше

В классе Dragging
Копируем код и создаем метод

Java:
Expand Collapse Copy
    public void draw(MatrixStack, matrixStack, int mouseX, int mouseY) {
        if (dragging) {
            xPos = (mouseX - startX);
            yPos = (mouseY - startY);
            MainWindow sr = Minecraft.getInstance().getMainWindow();
            float radius = 5;
           
            if (xPos + (width / 2) >= sr.getScaledWidth() / 2 - radius && xPos + (width / 2) <= sr.getScaledWidth() / 2 + radius && (mouseX >= xPos)) {
                xPos = sr.getScaledWidth() / 2 - (width / 2);
                // rect coord: x = sr.getScaledWidth() / 2; y = 0; width = 1, height = sr.getScaledHeight();
            }
        }
    }

Далее заходим в класс ChatScreen

в методе render

Java:
Expand Collapse Copy
        DragManager.draggables.values().forEach(dragging -> {
            if (dragging.getModule().isState()) {
                dragging.draw(MatrixStack matrixStack, mouseX, mouseY);
            }
        });
Кстати я слышал там у белуги такаяже тема не знаешь правда?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем нихао, пример как сделать фиксатор драгейбла (Drag) на любой базе (везде одна система). Самые простые координаты, кто захочет может по примеру сделать больше

В классе Dragging
Копируем код и создаем метод

Java:
Expand Collapse Copy
    public void draw(MatrixStack, matrixStack, int mouseX, int mouseY) {
        if (dragging) {
            xPos = (mouseX - startX);
            yPos = (mouseY - startY);
            MainWindow sr = Minecraft.getInstance().getMainWindow();
            float radius = 5;
          
            if (xPos + (width / 2) >= sr.getScaledWidth() / 2 - radius && xPos + (width / 2) <= sr.getScaledWidth() / 2 + radius && (mouseX >= xPos)) {
                xPos = sr.getScaledWidth() / 2 - (width / 2);
                // rect coord: x = sr.getScaledWidth() / 2; y = 0; width = 1, height = sr.getScaledHeight();
            }
        }
    }

Далее заходим в класс ChatScreen

в методе render

Java:
Expand Collapse Copy
        DragManager.draggables.values().forEach(dragging -> {
            if (dragging.getModule().isState()) {
                dragging.draw(matrixStack, mouseX, mouseY);
            }
        });

мог бы и чище сделать бро.


Java:
Expand Collapse Copy
   if (dragging) {
            xPos = (mouseX - startX);
            yPos = (mouseY - startY);

            if (xPos + width > res.scaledWidth()) {
                xPos = res.scaledWidth() - width;
            }
            if (yPos + height > res.scaledHeight()) {
                yPos = res.scaledHeight() - height;
            }
            if (xPos < 0) {
                xPos = 0;
            }
            if (yPos < 0) {
                yPos = 0;
            }
        }
 
мог бы и чище сделать бро.


Java:
Expand Collapse Copy
   if (dragging) {
            xPos = (mouseX - startX);
            yPos = (mouseY - startY);

            if (xPos + width > res.scaledWidth()) {
                xPos = res.scaledWidth() - width;
            }
            if (yPos + height > res.scaledHeight()) {
                yPos = res.scaledHeight() - height;
            }
            if (xPos < 0) {
                xPos = 0;
            }
            if (yPos < 0) {
                yPos = 0;
            }
        }
ладно сойдёт
 
мог бы и чище сделать бро.


Java:
Expand Collapse Copy
   if (dragging) {
            xPos = (mouseX - startX);
            yPos = (mouseY - startY);

            if (xPos + width > res.scaledWidth()) {
                xPos = res.scaledWidth() - width;
            }
            if (yPos + height > res.scaledHeight()) {
                yPos = res.scaledHeight() - height;
            }
            if (xPos < 0) {
                xPos = 0;
            }
            if (yPos < 0) {
                yPos = 0;
            }
        }
нет, у тебя фиксатор по краям, у меня фиксатор для перфекционизма, центр и т.д
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
мог бы и чище сделать бро.


Java:
Expand Collapse Copy
   if (dragging) {
            xPos = (mouseX - startX);
            yPos = (mouseY - startY);

            if (xPos + width > res.scaledWidth()) {
                xPos = res.scaledWidth() - width;
            }
            if (yPos + height > res.scaledHeight()) {
                yPos = res.scaledHeight() - height;
            }
            if (xPos < 0) {
                xPos = 0;
            }
            if (yPos < 0) {
                yPos = 0;
            }
        }
if (xPos <= 0)
xPos = 0;
else if (xPos + width >= mc.getMainWindow().getScaledWidth())
xPos = mc.getMainWindow().getScaledWidth() - width;

if (yPos <= 0)
yPos = 0;
else if (yPos + height >= mc.getMainWindow().getScaledHeight())
yPos = mc.getMainWindow().getScaledHeight() - height;
 
а че эта штука делает?
 
if (xPos <= 0)
xPos = 0;
else if (xPos + width >= mc.getMainWindow().getScaledWidth())
xPos = mc.getMainWindow().getScaledWidth() - width;

if (yPos <= 0)
yPos = 0;
else if (yPos + height >= mc.getMainWindow().getScaledHeight())
yPos = mc.getMainWindow().getScaledHeight() - height;
только хуже сделал
 
Ну если говорить где есть еще такое, то как в нурсултане, на заданных координатах в радиусе будет фиксация
круто только я видел в мун проджекте со всеми элементами такая фишка
 
круто только я видел в мун проджекте со всеми элементами такая фишка
ну если хочешь то можешь в классах по каждому Drag сделать это) а у меня сделано так чтобы все Drag элементы имели такую возможность
 
Назад
Сверху Снизу