Rotar la pantalla

Veréis, para mi próximo proyecto, necesito saber la manera de conseguir rotar objetos considerando el centro de la pantalla. Me explico, las funciones de Sin y Cos vienen explicadas para rotar un sprite, tomando su centro, para que gire sobre sí mismo. Lo que yo quiero, es que los sprites giren alrededor del centro de la pantalla.

No es esto lo que voy a hacer, pero para haceros una idea de lo que quiero, tenéis esto. Imaginaos que el Sol es el centro de la pantalla.

Si me podéis echar un cable, os lo agradecería. He buscado la manera, pero no la encuentro, se me escapa :S

Salu2


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderás trucos para resolver tus dudas antes.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de WhiteSkull

DEBERÍAS HABER LEIDO EL HILO ANTERIOR

Es lo que comenté en el anterior hilo, usando senos y consenos, podemos crear todo tipo de movimientos senoidales, por ejemplo para un efecto de onda para el mar, ondas de sonido, el movimiento de una serpiente reptando por el suelo, orbitar un objeto sobre un eje de otro, etc..

Incluso para transladar un vector a un espacio 3D, que era la cuestión del anterior hilo, espero que éste mini-ejemplo te ayude con tu problema..

Recuerda que el código no está completo y que debes incluir la librería "math.h" para que coja las funciones sin y cos.

...
 
...
 
float angulo=0.0;
 
u8 centroX = 128, centroY = 96, radio = 80;
 
 
 
 
while (1) {
 
     for (angulo=1;angulo<360;angulo++) // cuanta más precisión usemos para incrmentar el 
 
                                                           // angulo, más perfecto será el circulo
 
          // Aquí usamos "puntitos" para dibujar un pixel, pero puedes sustituirlo por lo 
 
          // que quieras, incluido un Sprite ;)
 
          PA_Put8bitPixel(0,centroX + radio*cos(angulo), centroY + radio*sin(angulo),2); 
 
 
     PA_WaitForVBL();
 
}
 
...

 

 

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.