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

В разработке Как найти силу полета стрелы.

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

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

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

    Баллы:
    66
    Имя в Minecraft:
    DieF
    @EventHandler
    public void onShoot(EntityShootBowEvent e)
    {
    if(e.getEntity().getType() == EntityType.PLAYER)
    {
    Player player = (Player) e.getEntity();
    Arrow arrow = player.getWorld().spawn(e.getProjectile().getLocation(), Arrow.class);
    Vector BadVector = e.getProjectile().getLocation().getDirection();
    Vector NewVector = new Vector (-BadVector.getX(), BadVector.getY(), BadVector.getZ());
    Vector direction = VectorRotateY( NewVector, 10 );
    arrow.setVelocity( direction );
    }
    }
    public static Vector VectorRotateY(Vector dir, double angleD)
    {
    double angleR = Math.toRadians(angleD);
    double x = dir.getX();
    double z = dir.getZ();
    double cos = Math.cos(angleR);
    double sin = Math.sin(angleR);
    return (new Vector(x*cos+z*(-sin), 0.0, x*sin+z*cos)).normalize();
    }
     
  2. ptnk

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

    Баллы:
    173
    Какая "сила полёта"? У стрелы есть vector, и чем больше он тем больше начальная скорость полёта. И это Velocity.
     

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