flikifliki escribió:Gracias por responder
Aunque parece que es una libreria propia. La descripcion de la funcion en si misma no viene en la pagina.
Tendré que seguir buscando.
Bueno, en ese caso, tienes dos opciones: cargar el sprite girado, o crear tu mismo un sprite girado en tiempo real.
Si lo que quieres son giros en pasos de 90 grados, es muy sencillo de hacer, pues basta con copiar el sprite original en una nueva area de memoria de forma que la imagen quede girada en el sprite de destino.
Por ejemplo, si queremos girar 90 grados a la derecha un sprite, tendriamos que leer cada pixel del sprite, recorriendolo de izquierda a derecha (scans) y luego incrementando una linea hacia abajo y copiandolos en el nuevo destino, de arriba a abajo en la posicion mas a la derecha y decrementando hacia la izquierda una unidad, por cada scan.
El truco está en utilizar un sprite de origen y otro de destino que sean cuadrados, porque de otra forma, sobreescribirias el original o no casaran las imagenes, claro.
Si lo que quieres es girar en pasos mas finos, esto es mas problematico porque para empezar, en los sprites cuadrados es facil que ocurra que un sprite girado no quepa y se salga de limites, por lo que deberias crear un sprite mucho mas grande y centrar el de origen y luego proceder a crear el sprite girado (no te puedo explicar como hacer esto, pero tecnicamente, seria lo mismo que girar los vertices de un QUAD y luego rasterizarlo en pantalla al estilo de una grafica 3D) y luego como ultimo paso, proceder a una comprobacion de limites del grafico y transferirlo a un contenedor mas optimizado.
Como ves, no es moco de pavo y personalmente, te recomiendo utilizar mejor un programa de dibujo (estoy pensando muy seriamente en implementar esto en mi utilidad sprite_gen
)