LuizB Postado Agosto 5, 2017 Denunciar Compartilhar Postado Agosto 5, 2017 (editado) Olá, estou tentando fazer um rotação na cabeça do armor stand, eu obtive sucesso, porém eu queria uma rotação suave.Rotação: [media]0_1r2zYxyPo[/media] Código: new BukkitRunnable() { float rotation = 0f; int xRotation = 0; boolean up = true; public void run() { if(running) { setRotation(rotation, xRotation); /*for(float i=.0f; i<=.6; i=i+.1f) { Location newLoc = loc.clone().add(0.1, .07, -i).add(0, xRotation, 0); // arc(loc.clone().add(0.1, .07, -i), newLoc); }*/ if(up) { if(rotation >= 4) { up = !up; xRotation = xRotation - 1; rotation = rotation - .200f; } else { xRotation = xRotation + 1; rotation = rotation + .200f; } } else { if(rotation <= -4) { up = !up; xRotation = xRotation + 1; rotation = rotation + .170f; } else { rotation = rotation - .170f; xRotation = xRotation - 1; } } } else { this.cancel(); } } }.runTaskTimer(plugin, 0, 2); Editado Agosto 5, 2017 por Cuthmf Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Agosto 5, 2017 Denunciar Compartilhar Postado Agosto 5, 2017 Eu fiz uns testes aqui e na minha opinião seu código está meio zoado... É só setar o Yaw... new BukkitRunnable() { @Override public void run() { Location location = stand.getLocation(); location.setYaw(location.getYaw() +5.5F); //modifica ai a "suavidade" stand.teleport(location); } }.runTaskTimer(this, 1L, 1L); Obs: "stand" é a variável do armor stand. 1 Link para o comentário Compartilhar em outros sites More sharing options...
Aureom Postado Agosto 5, 2017 Denunciar Compartilhar Postado Agosto 5, 2017 Você queria deixar a animação menos "teleportando"? se for isso aonde está "rotation = rotation - .200f;" é só você diminuir o valor do float para exemplo "rotation += 0.050F", que assim ela já vai girar mais "suave", e para compensar na velocidade você pode mudar a task de 2 ticks para 1 tick 1 Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Agosto 5, 2017 Denunciar Compartilhar Postado Agosto 5, 2017 Ué, por que não diminui os valores? Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Agosto 6, 2017 Autor Denunciar Compartilhar Postado Agosto 6, 2017 Eu fiz uns testes aqui e na minha opinião seu código está meio zoado... É só setar o Yaw... new BukkitRunnable() { @Override public void run() { Location location = stand.getLocation(); location.setYaw(location.getYaw() +5.5F); //modifica ai a "suavidade" stand.teleport(location); } }.runTaskTimer(this, 1L, 1L); Obs: "stand" é a variável do armor stand. Cara quase deu certo, o problema é que deu pra perceber que ta teleportando. Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Agosto 6, 2017 Denunciar Compartilhar Postado Agosto 6, 2017 Cara quase deu certo, o problema é que deu pra perceber que ta teleportando. Diminui o "5.5F"... Põem uns 2.5F ou menos... Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Agosto 6, 2017 Autor Denunciar Compartilhar Postado Agosto 6, 2017 Diminui o "5.5F"... Põem uns 2.5F ou menos... Deu quase certo, o problema é que eu queria que girasse só a cabeça. Você queria deixar a animação menos "teleportando"? se for isso aonde está "rotation = rotation - .200f;" é só você diminuir o valor do float para exemplo "rotation += 0.050F", que assim ela já vai girar mais "suave", e para compensar na velocidade você pode mudar a task de 2 ticks para 1 tick Não mudou nada. Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Agosto 6, 2017 Denunciar Compartilhar Postado Agosto 6, 2017 (editado) Deu quase certo, o problema é que eu queria que girasse só a cabeça. Não mudou nada. Use o método setHeadPose ué... @Edit: Esquece, o setHeadPose pede um EulerAngle como parâmetro e ele modifica apenas o x, y, z. Acho que não tem como se não teleportar a ArmorStand... Documentação do ArmorStand: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/ArmorStand.html Editado Agosto 6, 2017 por TequilAxBr Link para o comentário Compartilhar em outros sites More sharing options...
MrTBR Postado Agosto 6, 2017 Denunciar Compartilhar Postado Agosto 6, 2017 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas. Atenciosamente, Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
LuizB
Olá, estou tentando fazer um rotação na cabeça do armor stand, eu obtive sucesso, porém eu queria uma rotação suave.
Rotação:
[media]0_1r2zYxyPo[/media]
Código:
Editado por CuthmfLink para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados