Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

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();
}
 
Какая "сила полёта"? У стрелы есть vector, и чем больше он тем больше начальная скорость полёта. И это Velocity.
 

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

Назад
Верх