¿Cuál es el método estándar para un movimiento suave de la cámara dentro de SceneKit (OpenGL)? El cambio manual de x, y no es lo suficientemente uniforme, aunque el uso de CoreAnimation crea un movimiento de "pulsación". Los documentos sobre SceneKit parecen ser muy limitada por lo que cualquier ejemplos serían apreciadas, actualmente estoy haciendo esto:Movimiento suave de la cámara SceneKit
- (void)keyDown:(NSEvent *)theEvent {
int key = [theEvent keyCode];
int x = cameraNode.position.x;
int y = cameraNode.position.y;
int z = cameraNode.position.z;
int speed = 4;
if (key==123) {//left
x-=speed;
} else if (key==124) {//right
x+=speed;
} else if (key==125) {//down
y-=speed;
} else if (key==126) {//up
y+=speed;
}
//move the camera
[SCNTransaction begin];
[SCNTransaction setAnimationDuration: 1.0];
// Change properties
cameraNode.position = SCNVector3Make(x, y, z);
[SCNTransaction commit];
}
Pruebe cambiar la velocidad a un valor menor, y también marque 'animationTimingFunction' de SCNTransaction. Asegúrese de que el nombre de la función 'CAMediaTimingFunction' sea kCAMediaTimingFunctionLinear para que no emita pulsos. – TheAmateurProgrammer