2014-11-11 6 views
-1

Я довольно новичок в разработке плагинов bukkit, и мне было интересно, как бы я изменил скорость снежного кома/любого другого снаряда. В моем коде, когда игрок взаимодействует с определенным объектом, он запускает снежный ком, но мне нужно изменить его скорость. Помощь была бы оценена.Bukkit - Измените скорость снаряда

Благодаря

Код:

@EventHandler 
public void onPlayerInteract(PlayerInteractEvent event) { 
    Player player = event.getPlayer(); 
    if (!(event.getAction() == Action.RIGHT_CLICK_AIR)) return; 
    if (!(event.getItem().getType() == Material.BLAZE_ROD)) return; 
    Snowball snowball = player.launchProjectile(Snowball.class); 
} 
+0

Вам необходимо предоставить сегмент своего кода, чтобы люди могли вам помочь. –

+0

Вы можете найти здесь код: http://pastebin.com/TbV08Tij – marknzl

+0

Этот код недостаточен. Где код для Snowball, где вы, вероятно, найдете методы setSpeed ​​() и getSpeed ​​()? – MarsAtomic

ответ

0

Прямо сейчас вы только просто запуск Snowball снарядом. Вы должны добавить скорость к объекту, чтобы изменить его скорость. Это делается путем редактирования самого объекта.

Вот основные схемы, которые вы должны использовать. У меня нет средств для проверки этого, но это должно помочь указать вам в правильном направлении.

Snowball snowball = player.launchProjectile(Snowball.class); 

// Get vectors 
Vector i = target.getLocation().toVector(); 
Vector j = snowball.getLocation().toVector(); 

// Perform the subtraction, then normalize 
Vector r = i.subtract(j); 
Vector v = r.normalize(); 

// then, actually set the speed, in this case, by a magnitude of four 
Vector velocity = v.multiply(4); 

// Then, set the velocity of the snowball but updating the 'default' velocity of the snowball 
snowball.setVelocity(snowball.setVelocity(velocity)); 

Это может быть сжат, написав составное выражение:

Snowball snowball = player.launchProjectile(Snowball.class); 

Vector velocity = (target.getLocation().toVector().subtract(snowball.getLocation().toVector()).normalize()).multiply(4); 
snowball.setVelocity(snowball.setVelocity(velocity)); 

Надеется, что это помогает!

Смежные вопросы