En este entrada del blog ya se hizo referencia a la forma de instalar devkitpro en linux - ubuntu.
A fecha de hoy la instalación ha cambiado y hemos modificado esa entrada para actualizarla.
Saludos
viernes, 11 de junio de 2010
jueves, 27 de mayo de 2010
Una breve explicación
Ya siento no haber escrito en estos cuatro meses. Siempre me he estado quejando del poco tiempo que tenía, y ahora como podéis ver, ya ni siquiera actualizo el blog.
La verdad es que he emprendido una aventura empresarial y ya no tengo nada de tiempo. Desde hace un par de años llevaba colaborando con un amigo en una serie de proyectos informáticos y este año ya nos hemos decidido a dar el salto.
He dejado mi trabajo y nos estamos poniendo por nuestra cuenta. Como comprenderéis estoy bastante liado.
En cuanto tenga algo de tiempo seguiré con el blog, ya que tengo alguna que otra idea y me gustaría poder desarrollarla en el blog.
Saludos a todos y muchas gracias
La verdad es que he emprendido una aventura empresarial y ya no tengo nada de tiempo. Desde hace un par de años llevaba colaborando con un amigo en una serie de proyectos informáticos y este año ya nos hemos decidido a dar el salto.
He dejado mi trabajo y nos estamos poniendo por nuestra cuenta. Como comprenderéis estoy bastante liado.
En cuanto tenga algo de tiempo seguiré con el blog, ya que tengo alguna que otra idea y me gustaría poder desarrollarla en el blog.
Saludos a todos y muchas gracias
viernes, 22 de enero de 2010
Tetris para la Wii
Como ya comentamos en una entrada anterior vamos a ver como pasar el Tetris de la DS a la Wii.
Lo primero de todo es bajar el Tetris para la DS, y ponernos a cambiar las llamadas a la librería PAlib por las de la Wii. Para la Wii hay varias librerías disponibles, en nuestro caso hemos usado las librerías libwiisprite, para la parte gráfica, fat, para le acceso al disco y wpad para manejar el wiimote.
Por ejemplo el #include se debe cambiar por #include , #include y #include .
Por ejemplo las llamadas de tipo PA_Init, PA_InitVBL() y PA_InitText por gwd.InitVideo, donde se ha definido gwd de tipo GameWindow, fatInitDefault y WPAD_Init();.
Otra cosa, las librería del Wii que he usado están en C++, por lo que hay que pasar de tetris.c a tetris.cpp. He utilizado la nomenclatura de objetos con . en vez de con ->. Esto es debido a que todos los ejemplo venían con . y como he hecho Copy/Paste pues así es como ha quedado.
Este es el código para cargar el fondo:
La explicación del código sería muy fácil: primero definimos la variable img_fondo de tipo Imagen y cargamos el fondo en este objeto, con la función LoadImage. Se crea un objeto de tipo Sprite y se le asocia la imagen. Finalmente lo colocamos en la posición 0, 0 y Ya tenemos el fondo.
Ahora toca cargar los tilset para las fichas y el tablero. Esto, si se ha seguido la programación del tetris de la DS, no sería necesario explicarlo mucho. Sólo comentaremos que un tileset es una zona gráfica que se puede rellenar con pequeñas imágenes para crear la imagen completa, a modo de ladrillos.
Para crear una zona de tilesets (el tablero del tetris y la fichas siguiente) usaremos
el objeto TiledLayer:
La explicación sería muy parecida a la de cargar el fondo. Se han creado dos objetos de tipo TiledLayer y a ambos se les asocia una imagen como StaticTileset. Esta será la que contendrá los ladrillos. Finalmente posicionamos los dos tilesets en la pantalla.
Ahora vamos a cargar todo en pantalla. Para esto se usa un LayerManager, al cual hay que asignarle los tres componentes que queremos que muestre:
En el próximo post veremos como utilizar el mando el wiimote como un mando clásico.
Saludos y feliz año.
P.D. Este es el primer y único desarrollo que he hecho para la Wii, así que no puedo decir si como se ha hecho es la mejor forma posible. Cargar un fondo en un objeto de tipo Sprite no parece muy correcto, pero es que no he encontrado otra forma de hacerlo. Me gustaría estudiar más a fondo la librería libogc pero, como siempre, la falta de tiempo...
Lo primero de todo es bajar el Tetris para la DS, y ponernos a cambiar las llamadas a la librería PAlib por las de la Wii. Para la Wii hay varias librerías disponibles, en nuestro caso hemos usado las librerías libwiisprite, para la parte gráfica, fat, para le acceso al disco y wpad para manejar el wiimote.
Por ejemplo el #include
Por ejemplo las llamadas de tipo PA_Init, PA_InitVBL() y PA_InitText por gwd.InitVideo, donde se ha definido gwd de tipo GameWindow, fatInitDefault y WPAD_Init();.
Otra cosa, las librería del Wii que he usado están en C++, por lo que hay que pasar de tetris.c a tetris.cpp. He utilizado la nomenclatura de objetos con . en vez de con ->. Esto es debido a que todos los ejemplo venían con . y como he hecho Copy/Paste pues así es como ha quedado.
Este es el código para cargar el fondo:
Image img_fondo; if (img_fondo.LoadImage("fondo.png") != IMG_LOAD_ERROR_NONE) exit(0); Sprite fondo; fondo.SetImage(&img_fondo); fondo.SetPosition(0, 0);
La explicación del código sería muy fácil: primero definimos la variable img_fondo de tipo Imagen y cargamos el fondo en este objeto, con la función LoadImage. Se crea un objeto de tipo Sprite y se le asocia la imagen. Finalmente lo colocamos en la posición 0, 0 y Ya tenemos el fondo.
Ahora toca cargar los tilset para las fichas y el tablero. Esto, si se ha seguido la programación del tetris de la DS, no sería necesario explicarlo mucho. Sólo comentaremos que un tileset es una zona gráfica que se puede rellenar con pequeñas imágenes para crear la imagen completa, a modo de ladrillos.
Para crear una zona de tilesets (el tablero del tetris y la fichas siguiente) usaremos
el objeto TiledLayer:
TiledLayer tablero_layer(TABLERO_ANCHO, TABLERO_ALTO, 8); TiledLayer ficha_siguiente_layer(FICHA_ANCHO, FICHA_ALTO, 8); Image tiles; if (tiles.LoadImage("tiles16.png") != IMG_LOAD_ERROR_NONE) exit(0); tablero_layer.SetStaticTileset(&tiles, 16, 16); tablero_layer.SetPosition(160, 50); ficha_siguiente_layer.SetStaticTileset(&tiles, 16, 16); ficha_siguiente_layer.SetPosition(350, 50);
La explicación sería muy parecida a la de cargar el fondo. Se han creado dos objetos de tipo TiledLayer y a ambos se les asocia una imagen como StaticTileset. Esta será la que contendrá los ladrillos. Finalmente posicionamos los dos tilesets en la pantalla.
Ahora vamos a cargar todo en pantalla. Para esto se usa un LayerManager, al cual hay que asignarle los tres componentes que queremos que muestre:
LayerManager tablero_manager(3); tablero_manager.Append(&tablero_layer); tablero_manager.Append(&ficha_siguiente_layer); tablero_manager.Append(&fondo);El orden es importante, el fondo debe ir al final.
En el próximo post veremos como utilizar el mando el wiimote como un mando clásico.
Saludos y feliz año.
P.D. Este es el primer y único desarrollo que he hecho para la Wii, así que no puedo decir si como se ha hecho es la mejor forma posible. Cargar un fondo en un objeto de tipo Sprite no parece muy correcto, pero es que no he encontrado otra forma de hacerlo. Me gustaría estudiar más a fondo la librería libogc pero, como siempre, la falta de tiempo...
Etiquetas:
c++,
homebrew,
libwiisprite,
programación,
programar,
tetris,
Wii
Suscribirse a:
Entradas (Atom)