10 de Febrero de 2012
Abr
30

Programacion en DS. Sprites, rotacion y escalado.

Hola!
Poquita cosa hoy, ya que las funciones de rotacion y escalado del sprite son tan simples como indicarle al OAM (Object Attribute Memory) que Rotset de los 32 disponibles por pantalla queremos asignarle al sprite y luego solo decirle al rotset correspondiente que valor queremos para el angulo y escalado.
Como las Libnds usan valores para la rotacion de entre -32768 y 32768, he decidido pegarle un bitshift para poder usar valores entre -512 y 512 (suficientes digo yo), ademas decorregir que los valores positivos giren a la derecha y los negativos a la izquierda (en las libnds se interpreta al reves, que cosas). El factor de escalado se mueve entre el 0 y el 512, siendo 256 el valor central, que equivale a una escala del 100%
 

Para ver este video es necesario tener JavaScript activado y el plugin Flash instalado en el navegador.

 
Los valores de escalado que usan la libnds me han parecido correctos, salvo que para ellos el 512 significava reducir la escala, la cual cosa he invertido, siendo 0 el valor mas pequeño y 512 el mayor.
Como novedad comentaros que dentro de la carpeta DOCS del proyecto encontrareis un documento de WORD con el manual que estoy realizando de esta libreria. Ademas el manual indica en que archivo se encuentra cada funcion, para asi ayudaros a localizarla si quereis aprender como la he realizado.
 
Los pequeños fallos en el escalado de sprites son normales, ya que el efecto esta realizado de manera aleatoria y no contempla el tamaño maximo del sprite para rotaciones.
 
La descarga de proyecto de hoy: NightFox's Lib para Libnds 20090430
 
Un cordial saludo y os recuerdo que podeis dejarme vuestras dudas y sujerencias en los comentarios.
 
Hasta la proxima

NightFox

0

1 Comentario:

Muy bueno. Sigue así.

Muy bueno. Sigue así.