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

Проблема со спавном частиц [Решено]

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

Статус темы:
Закрыта.
  1. Автор темы
    _TheZit445_

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

    Баллы:
    76
    Skype:
    kirik2425
    Имя в Minecraft:
    _TheZit445_
    Ещё раз взываю вас, о святые кодеры этих мест. В общем, сразу к делу. Была такая проблема - хочу одновременно заспавнить частицы в определённых координатах, но на деле они все спавнятся в одной точки. (Может это из-за счедулера, версия 1.12, ранее использовал Particle API, но сейчас версии на 1.12 нет и при попытке использовать, он выдаёт ошибку, поэтому использую стандартные)
    Код:
    // Допустим
    @Override
    public void run(){
       <...> // код
       Location eye = <...>; // Тут первая локация
       Location target = <...>; // вторая
       Vector vector = target.subtract(eye).toVector().normalize();
       Location bullet = eye;
       bullet.add(vector.multiply(0.1));
       for (int i = 1; i<=100; i++){
          bullet.add(vector.multiply(0.2));
          bullet.getWorld().spawnParticle(Particle.REDSTONE, bullet, 1, 0, 0, 0, 0);
       }
       <...> // код
    }
    
    Собственно вот. И эта проблема у меня не в первый раз. В прошлый раз я увернулся тем, что знал координаты изначально и поточечно спаунил их, благо их было не много. Сейчас же они идут по вектору, и их не мало. Подскажите, пожалуйста, что не так то? Или есть у кого какой-нибудь Particle API на 1.12?

    (P.S. ошибок в консоли нет, всё работает так, буд-то так и было задумано)

    UPD: Решено
    Код:
    // Допустим
    @Override
    public void run(){
       <...> // код
       Location eye = <...>; // Тут первая локация
       Location target = <...>; // вторая
       Vector vector = target.subtract(eye).toVector().normalize().multiply(0.2);
       Location bullet = eye;
       bullet.add(vector);
       for (int i = 1; i<=100; i++){
          bullet.add(vector);
          bullet.getWorld().spawnParticle(Particle.REDSTONE, bullet, 1, 0, 0, 0, 0);
       }
       <...> // код
    }
    
     
    Последнее редактирование: 29 июл 2017
  2. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Мы не ванги, есть ошибки в кнс?
     
  3. Автор темы
    _TheZit445_

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

    Баллы:
    76
    Skype:
    kirik2425
    Имя в Minecraft:
    _TheZit445_
    @HunterGaming Нет, в том то и дело. Всё работает так, буд-то так и было задумано. И в смысле не ванги. Я вроде всё описал, если не в курсах, то чего возмущаться то сразу. Попробуй сам написать нечто подобное и посмотри реакцию, может у тебя получится и это я косорукий, а может быть и тоже самое будет.
     
    Последнее редактирование: 29 июл 2017
  4. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Так, а что не так то?
     
  5. Автор темы
    _TheZit445_

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

    Баллы:
    76
    Skype:
    kirik2425
    Имя в Minecraft:
    _TheZit445_
    @HunterGaming так вроде описал всё. Частицы должны заспаунится одновременно по вектору, 100 частиц с промежутков в 0.2, то есть должна образоваться прямая линия из частиц, но на деле они все 100 частиц спаунятся в одной точке, в начальной. Консоль ошибок не даёт, в коде вроде всё верно. Ранее использовал эту конструкцию, но с Particle API и всё работало прекрасно, сейчас же АПИ, которое использовал на 1.12 нету и я использую стандартные методы, которые есть в спигот. Весь код в счедулере
     
  6. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Удали умножение вектора на 0.2
     
  7. Автор темы
    _TheZit445_

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

    Баллы:
    76
    Skype:
    kirik2425
    Имя в Minecraft:
    _TheZit445_
    @Cool_boy пора прекращать садится поддатым за ПК. Дурак, ой дурак. .multiply возвращает этот же вектор, работает только на себя. Глупец. Спасибо большое. Почему-то что-то более сложное получается проще, а нечто простое уже начинает вылетать из головы. Пока ты не написал, не осенило... Старею.
    Спасибо большое, ещё раз
     
  8. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Сам раньше тупил с локациями, пока не вспомнил про .clone()
     
  9. Автор темы
    _TheZit445_

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

    Баллы:
    76
    Skype:
    kirik2425
    Имя в Minecraft:
    _TheZit445_
    @Cool_boy слушай, а не подскажешь ещё, нет ли сейчас какого-нибудь Particle API на 1.12?
     
  10. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Почти не пользуюсь частицами. Ну и написать свой API никто не мешает)
     
  11. Автор темы
    _TheZit445_

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

    Баллы:
    76
    Skype:
    kirik2425
    Имя в Minecraft:
    _TheZit445_
    @Cool_boy я ленивая задница. Буду ждать обновления. Спасибо за отзывчивость
    Закрываю
     
Статус темы:
Закрыта.

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