1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Рывок для игрока

Тема в разделе "Разработка плагинов для новичков", создана пользователем MOR_IV, 26 май 2017.

  1. Автор темы
    MOR_IV

    MOR_IV Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Приветствую. В геометрии не силён, вот и пишу сюда.
    Имеем игрока, так вот его надо толкнуть в направлении взгляда на определенное количество блоков.
    Уже давно ломаю голову.
    Если беру вектор взгляда, умножаю на число, то вверх летит очень сильно, а стоя на земле на короткое расстояние.
    Может есть у кого готовое решение?
    Любые идеи.
     
  2. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Умножай x и z взгляда на один коэффициент, а y на другой =)
     
  3. Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Qamulex
    Код:
        public static void pushTo(Entity target, Location to, double multiply) {
            Vector unitVector = to.toVector().subtract(target.getLocation().toVector()).normalize();
            target.setVelocity(unitVector.multiply(multiply).add(new Vector(0.0, 0.1, 0.0)));
        }
    
        public static void pushFrom(Entity target, Location from, double multiply) {
            Vector unitVector = target.getLocation().toVector().subtract(from.toVector()).normalize();
            target.setVelocity(unitVector.multiply(multiply).add(new Vector(0.0, 0.1, 0.0)));
        }
    Это должно помочь в реализации
     
  4. Автор темы
    MOR_IV

    MOR_IV Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Да действительно, стало лучше.

    Честно, мало помогло. Мне проще взять просто вектор взгляда и умножить.

    Ещё идеи?
     
  5. MamkinHasker

    MamkinHasker Ньюби

    Баллы:
    1
    Имя в Minecraft:
    MamkinHasker
    Бери motionX и MotionZ *= 2.0f;
    Должно толкнуть как следует.
     
  6. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    motionX *= 0.4F;
    motionY *= 0.7F;
    motionZ *= 0.4F;
     
  7. TheZefirrkka

    TheZefirrkka Активный участник Пользователь

    Баллы:
    76
     
  8. Автор темы
    MOR_IV

    MOR_IV Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Не много не догоняю, как это притулить?
    И как сделать движение в направлении взгляда?
    Говорю же в геометрии вообще не шарю.
     
  9. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    CraftPlayer или setVelocity
     
  10. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    p.setVelocity(p.getLocation().getDirection().multiply(20));
     
  11. Автор темы
    MOR_IV

    MOR_IV Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Вот в данный момент так и сделал, только умножаю на вектор, с маленьким y, что бы исключить высокий прыжок в небо.
     

Поделиться этой страницей