He visto que en la version 2.0 si que hay una función para copiar una textura con una rotacion aplicada. En la 1.2 me parece que vas a tener que hacerlo a mano dibujando pixel a pixel y esto ira un poco lento. ¿Cual es la plataforma destino? Otra opción es que al arrancar calcules todas las rotaciones de todos los sprites así ira igual de rápido que dibujando sprites normales.
Para rotar un sprite tienes dos opciones:
1. Recorres de izquierda a derecha y de arriba a abajo el sprite y lo vas dibujando en un buffer. El problema es que puede dejar huecos.
Algo así en seudocodigo, El punto inicial de dx y dy (las coordenadas destino) hay que calcularlas en función de la rotacion.
Código:
vx = vec(cos(angulo), -sin(angulo))
vy = vec(sin(angulo), cos(angulo))
dx = 0
dy = 0
for y = 0 to alto
{
for x = 0 to ancho
{
plot dx,dy,color[x, y]
dx += vx
}
dx -= vx*ancho
dy += vy
}
2 Rasterizar un cuadrado rotado y dibujar lo con la textura, vamos como en un motor 3d. Esto es un poco mas complicado pero queda mejor.
Marcadores