[NDS] DSLUA

Bueno, leyendo por aqui los foros, y rebuscando por internet e visto lo gran escasez de manuales y tutoriales sobre programación de ds en el lenguaje de cervantes.
bueno, para empezar iré traduciendo la documentación de la página dslua, y si os gusta y ahi conformidad por parte de los usuarios os podría traducir otros tutoriales y manuales... bueno pongo el principio y
vosotros dires. :)

Como configurar y usar DSLua

• Bienvenido a DSLua
• CF Flavour
• GBFS Flavour
• Auto-start
• gfx2gba
• Más Información


Bienvenido a DSLua

DSLua es un port del Lua scripting language para la Nintendo DS. Originalmente echo por waruwaru, ahora mantenido por sypherce, daltonlaffs, y yo, Jeremysr. Puedes obtener el codigo fuente de DSLua.com, en la página de descargas. Este documento, explicará como usar DSLua y escribir programas para él.



CF Flavour

DSLua comes in two flavours: CF flavour, and GBFS flavour. This section will explain the CF flavour.

The CF flavour es un sencillo ejecutable de DS que puedes ejecutar en tu DS. Cuando lo ejecutas, el abre un explorador de archivos. Puedes explorer en la tarjeta de memoria, pulsar A para corer programas lus (marcados en verde.)

The CF flavour viene con 3 versiones más: azul (blue), verde (green) y gris (gray), como DSOrganize. Azul sera la major eleccion para Supercards, verde funcionará major para los dispositivos M3, y el gris debería funcionar con la mayoría del resto de tarjetas. Si ninguna de ellas funcionara, deverás usar DSLua GBFS flavour.



GBFS Flavour

El GBFS flavour empaqueta tus archivos lua (y graficos, musica, efectos de sonido, cualquier cosa necesaria para ejecutar tu programa) en un solo ejecutable de DS, asi no tendrás todos los archivos de lua en tu tarjeta de memoria, como en el CF flavour.

Para empaquetar los archivos, primero, tienes que poner tus archivos en el directorio scripts (se encuentra en el directorio principal de DSLua GBFS flavour). Después ejecuta PACK.BAT. Esto devería poner todos los archivos del directorio scripts y empaquetarlos dentro bundle/DSLUA-PACKS.nds (o .ds.gba o .sc.nds). Después tu podras ejecutarlo siempre que sea compatible con tú flashcart, y cuando se ejecute te permitira elegir un archivo empaquetado para ejecutar (archivos lua estarán marcados en verde.)



Auto-start

La caracteristica Auto-start, te deja hacer un archivos DSLua que automaticamente ejecute cierto archive en la tarjeta de memoria (o GBFS). Mirar auto-start.bat para instrucciones y un ejemplo.


gfx2gba

Actualmente tu juego de sprites deve estar en formato .raw/.pal, y tus fondos deven estar en formato .raw/.pal/.map. Para convertirlos, usa gfx2gba.exe, el cual encontraras en el directorio bin. Desde la linea de comandos, ejecuta esto para hacer un sprite:
gfx2gba -poutput.pal input.bmp

La salida sera un archive de paleta (output.pal) y un archive de imagen raw con el mismo nombre que tu entrada (en este ejemplo, sera input.raw). El archivo de entrada debe ser un bitmap de 256 colores (.bmp). Su alto y anho deben ser 16,32 o 64 pixels. (Ejemplos: 16x16, 32x64,64x16…)
Para hacer un fondo (seccion de mapa), tu necesitas añadir el commando –m:
gfx2gba -m -poutput.pal input.bmp

Con este ejemplo, conseguirimaos tres archivos de salida: input.raw, input.map, y output.pal. Como sprites, el bitmap (bmp) de entrada debe estar en 256 colores y el alto y ancho debe ser un multiplo de 8.



Funciones de salida de Texto

Estas funciones son usadas para sacar texto por la pantalla. Para inicializar un texto en la pantalla, mira las funciones Screen.LoadTextBG() y Screen.Initialize().
• TextBackground:SetColor()
• TextBackground:PrintXY()
• TextBackground:Clear()


TextBackground:SetColor( color )
Establece el color de texto para ese fondo. Todos los textos imprimidos en el fondo, se mostraran del mismo color, solamente el texto que esta impreso despues de la function SetColor, es afectado.
Color puede ser un número del 0 al 9 donde 0 = blanco, 1 = rojo, 2 = verde, 3 = azul, 4= violeta, 5 = cyan, 6 = amarillo, 7 = gris claro, 8 = gris oscura, 9 = negro.


TextBackground:PrintXY( x, y, text )
Imprime texto en la pantalla.
Print text to the screen.

x puede ser un número del 0 al 31. Esto controla donde se empezará a imprimir el texto, horizontalmente
y puede ser un número desde 0 a 23. Esto controla donde se empezará a imprimir el texto, verticalmente.
text es la cadena que sera impresa.



TextBackground:Clear()
Limpia todo el texto en el fondo.


Funciones de Sistema

La Mayoría de estas funciones no tienen ningun parametro, la mayoría devuelvenvalores de sistema de DS.
• DSLua.WaitForAnyKey()
• DSLua.VBlankCount()
• DSLua.Year()
• DSLua.Month()
• DSLua.Day()
• DSLua.Hour()
• DSLua.Min()
• DSLua.AlarmHour()
• DSLua.AlarmMin()
• DSLua.Sec()
• DSLua.UserName()
• DSLua.UserMessage()
• DSLua.BirthMonth()
• DSLua.BirthDay()
• DSLua.Color()
• DSLua.Language()
• DSLua.Version()
• DSLua.SetScreenLight()
• DSLua.SetLedBlink()
• DSLua.SwitchScreens()
• DSLua.LidClosed()
• DSLua.SetDSLBrightness()


DSLua.WaitForAnyKey()
Pausa el programa hasta que un boton es pulsado (A/B/X/Y/L/R/Start/Select.)



DSLua.VBlankCount()

Devuelve el número de V-Blanks desde que el programa comenzó.

DSLua.Year()
Devuelve el año en cuatro digitos como un integral.

DSLua.Month()
Devuelve el mes como un integral.

DSLua.Day()
Devuelve el día de mes como un integral.
DSLua.Hour()
Devuelve la hora del dia como un integral, desde 0 a 23


DSLua.Min()
Devuelve el minuto de la hora como un integral.

DSLua.AlarmHour()
Devuelve la hora a la que la alarma se apaga..



DSLua.AlarmMin()
Devuelve el minuto en el que la alarma se apaga.

DSLua.Sec()
Devuelve el Segundo del minuto como un integral.



DSLua.UserName()

Devuelve el nombre de usuario que está establecido en la DS como una cadena.


DSLua.UserMessage()
Devuelve el mensaje que la DS tiene establecido como una cadena.

DSLua.BirthMonth()

Devuelve el mes del cumpleaños del usuario como un integral.


DSLua.BirthDay()
Devuelve el día del mes del cumpleaños del usuario como un integral.

DSLua.Color()
Devuelve el color que tiene configurado la DS como un integral. 0= Gris, 1 = Marron, 2 = Rojo, 3 = Rosa, 4 = Naranja, 5 = Amarillo, 6 = Lima, 7 = Verde, 8 = Verde Oscuro, 9 = Teal¿?, 10 = Azul claro, 11 = Azul, 12 = Azúl Oscuro, 13 = Violeta Oscuro, 14 = Violeta Claro, 15 = Rosa Oscuro.



DSLua.Language()

Devuelve el lenguaje en el que la DS está configurada como un integral. 0 = Japones, 1 = Ingles, 2 = Frances, 3 = Aleman, 4 = Italiano, 5 = Español.

DSLua.Version()
Devuelve la version usada de DSLua.



DSLua.SetScreenLight( screen, status )
Conmuta la luz de las pantallas entre on y off
Screen es cualquier 0 para ambas pantallas o 1 para la pantalla de arriba
Status es cualquier 0 para apagar la luz o uno para encenderlo.


DSLua.SetLedBlink( blink, speed )
Hace parpadear el LED de encendido

blink puede ser 1 para comenzar a parpadear, o 0 para parar de parpadear.
speed puede ser 0 para lento (como la DS en modo sleep), o 1 para rápido (como cuando estas en Nintendo WFC).



DSLua.SwitchScreens()
Conmuta las pantallas, ahora cualquiera supondrá que la pantalla top va en el fondo y que la pantalla de abajo sera la de la tapa.

DSLua.LidClosed()

Devuelve verdadero si la tapa de la DS está cerrada, de otra manera devolverá falsa.


DSLua.SetDSLBrightness( brightness )
Si es una DS lite, establece la configuración del brillo.
Brillo es un número del 0 al 3, 0 empieza el más oscuro, 3 la empieza más brillante.

Funciones Sprite

Funciones para dibujar y mover alrededor sprites en las pantallas.
• Sprite.Palette()
• Sprite.Create()
• Sprite:SetFrame()
• Sprite:MoveTo()
• Sprite:Free()


Sprite.LoadPalette( screen, palettenumber, palettefile )
Cargar una paleta.

screen es la pantalla que la paleta sera cargada. Puede ser 1 (top screen) o 0 (bottom screen).
palettenumber puede ser un número de otras paletas. Será usado para identificar esta paleta con tu sprite(s).
palettefile es el archive .pal que sera cargado. (Ej: “sprite.pal”)

Sprite = Sprite.Create( SpriteFrames, framenumber, palettenumber, x, y )
Crea un sprite y los dibuja en la pantalla.

SpriteFrames es la variable en la que sera cargado dentro de un archive .raw (mirar funciones Frame Strip ).
framenumber el el frame en el que quieres comenzar (frume 0 es el primero y será usado si solamente ahi un frame.) palettenumber es el numero que tu haces en la función the Sprite.LoadPalette().
x, y son las coordenadas en la pantalla donde se dibujará el sprite ( el píxel superior-izquierdo). X va de 0 a 255, Y va de 0 a 191.
Sprite es la variable que usará en otras funciones para controlar el sprite.



Sprite:SetFrame( SpriteFrames, framenumber )
Sets the sprite to a new frame.

SpriteFrames es la variable que sera cargado dentro del archive .raw (mira las funciones Frame Strip).
framenumber es el frame que tu quieres cambiar. El primer frame es el frame 0.


Sprite:MoveTo( x, y )
Mueve el sprite a un punto diferente en la pantalla, instantaneamente.
x, y son las nuevas cordenadas del sprite. X puede ir de 0 a 255, Y puede ser de 0 a 191.


Sprite:Free()
Libera un sprite desde la memoria y lo borra de la pantalla. El sprite debe establecerse en el frame 0 antes liberando por culpa de un bug en DSLua 0.5


...... To be continued...
0 respuestas