Ich habe das jetzt geschafft, dass Man entweder vertikal oder horizontal um den panda drehen:
Code: Alles auswählen
#VERTIKAL
print base.camera.getZ()
phi1 = vector.Vector(0, #z
self.radius,
0) #x
phi2 = vector.Vector(base.camera.getZ(),
base.camera.getY(),
base.camera.getX())
phi = phi1.angle(phi2)
if bool(phi2[2] < 0):
#On the other side
phi = -phi
move = self.mouse_lastest_x - self.mouse_now_x
move = move * 6#speed
cx = self.radius * math.sin(phi + move)
cy = self.radius * math.cos(phi + move)
base.camera.setX(cx)
base.camera.setY(cy)
base.camera.lookAt(self.panda)
del phi1, phi2, phi, move, cx, cy
#HORIZONTAL
phi1 = vector.Vector(0,
self.radius,
0)
phi2 = vector.Vector(base.camera.getZ(),
base.camera.getY(),
base.camera.getX())
phi = phi1.angle(phi2)
if 0:#bool(phi2[2] < 0):
#On the other side
phi = -phi
move = self.mouse_lastest_y - self.mouse_now_y
move = move * 6#speed
cx = self.radius * math.cos(phi + move)#sin
cy = self.radius * math.cos(phi + move)#cos
cz = self.radius * math.sin(phi + move)
base.camera.setY(cy)
base.camera.setZ(cz)
base.camera.lookAt(self.panda)
Wie geht das das ich überall hindrehen kann?