Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Помогите сделать коррекцию движения

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
21 Фев 2024
Сообщения
191
Реакции
1
Делаю свою мега пасту 3000 и не могу сделать коррекцию движения на 1.21.4 fabric типо я со всех баз брал не чо не работает


хз:
Expand Collapse Copy
 public void fixMovement(final MoveInputEvent event, final float currentYaw, final float targetYaw) {
        if (mc.player == null || !event.isMoving()) {
            return;
        }

        final float forward = event.getForward();
        final float strafe = event.getStrafe();
        final float yawDelta = Math.abs(MathHelper.wrapDegrees(targetYaw - currentYaw));
        if (yawDelta < 1.0F || yawDelta > 45.0F) {
            return;
        }

        final float delta = MathHelper.wrapDegrees(currentYaw - targetYaw);
        final float radians = (float) Math.toRadians(delta);
        final float sin = MathHelper.sin(radians);
        final float cos = MathHelper.cos(radians);

        float correctedForward = forward * cos - strafe * sin;
        float correctedStrafe = strafe * cos + forward * sin;

        correctedForward = MathHelper.clamp(Math.round(correctedForward), -1.0F, 1.0F);
        correctedStrafe = MathHelper.clamp(Math.round(correctedStrafe), -1.0F, 1.0F);

        event.setForward(correctedForward);
        event.setStrafe(correctedStrafe);
    }

вот код может ктото поймёт
 
MathHelper.clamp после Math.round здесь обрезает значения до -1/0/1 из-за чего персонаж двигается рывками убери нахуй clamp и не округляй

java:
Expand Collapse Copy
correctedForward = Math.max(-1.0F, Math.min(1.0F, correctedForward));
correctedStrafe = Math.max(-1.0F, Math.min(1.0F, correctedStrafe));

если всё равно криво то разверни delta попробуй targetYaw - currentYaw
 
Назад
Сверху Снизу