Für ein Minecraft-Projekt wollte ich den Spieler Gesicht (0, 60, 0) allmählich. Bisher scheint alles, was ich versucht habe, zu versagen, wenn der Spieler sich mehr als 720 ° bewegt (0, 60, 0).Minecraft Modding ändern Richtung des Spielers allmählich
Hat jemand eine Idee, wie man die Kamera nahtlos zu (0, 60, 0) bewegt?
Vielen Dank!
Hier ist mein Code so weit (die in einer Schleife läuft, wenn getoggelt):
int x = 0;
int y = 60;
int z = 0;
player = Minecraft.getMinecraft().thePlayer;
double dirx = player.posX - 0;
double diry = player.posY - 60;
double dirz = player.posZ - 0;
double len = Math.sqrt(dirx*dirx + diry*diry + dirz*dirz);
dirx /= len;
diry /= len;
dirz /= len;
double pitch = Math.asin(diry);
double yaw = Math.atan2(dirz, dirx);
//to degree
pitch = pitch * 180.0/Math.PI;
yaw = yaw * 180.0/Math.PI;
yaw += 90f;
if(yaw > player.rotationYaw) {
player.rotationYaw++;
} else if(yaw < player.rotationYaw) {
player.rotationYaw--;
}
EDIT:
Dieser Code ohne die if-Anweisung ordnungsgemäß funktioniert. Die Gier- und Nickvariablen sind in Grad angegeben.
Was ich truoble mit ist, ist die Tatsache, dass, wenn ich ein paar Mal umdrehen (0, 60, 0), der Bildschirm plötzlich eine 360 ° Drehung, ohne ersichtlichen Grund.
Möchten Sie aus der Richtung rotieren, in die der Spieler gerade schaut? Ist die Position, an der Sie einen Standort in der Welt oder in Bezug auf Ihren Player sehen möchten? Ist 'player.rotationYaw' in Grad oder Radian? – ManIkWeet
@ManIkWeet RotationYaw ist in Grad, dass ich sicher weiß. – Pokechu22
@ManIkWeet Es ist in Grad – JustAJavaCoder