Tutorial De Programacion En LUA - Capitulo 4

Todo sobre la primera portátil de Sony

Moderadores: Webmaster, Administrador, Moderador

Tutorial De Programacion En LUA - Capitulo 4

Notapor the_marioga » Viernes, 02 Abril 2010, 11:45

Capitulo 4. La venganza de... digo... Funciones interesantes y colores RGB



Bueno fieles subditos que me seguis por los tutos de LUA, ahora os enseñare varios codigos que pueden ser utiles, solo espero que los useis. Tambien unos cuantos colores RGB y os enseñare a formarlos.

1. Colores RGB

Bien, pues los RGB estan compuestos por 3 colores rojo, verde y azul. Cada 1 tiene un valor entre 0 y 255.

Si recordais(a no ser que tengais amnesia) e el primer tuto os di estos colores

(255, 255, 255) = blanco
(255, 0, 0) = rojo
(0, 255, 0) = verde
(0, 0, 255) = azul
(0, 0, 0) = negro
(255, 255, 0) = amarillo

Pues ahora os dare mas y los explicare

El primero es la R, el rojo(red), cualquier numero del 0 al 255 es un tono de rojo mas claro o mas oscuro
El de enmedio es la G, el verde(green) al igual que el de arriba va de 0 a 255 y cada numero es un tono
Y el ultimo es la B , el azul(blue) y como los otrs va de 0 a 255 y cada numero es un tono

Vale, pues solo usando 255 y 0 entre los 3 se pueden hacer muchas combinaciones

A partir de ahora los que ponga estan sacados de una paleta de colores de internet, asi k no estoy muy seguro de ellos, podeis probarlos y si no son corregirme

255, 0, 255 = ¿Lila?
0, 255, 255 = ¿Cyan?

No tiene por que ser solo 255 y 0, Tambien se podria conseguir colores como el gris asi:

100, 100, 100 = ¿gris oscuro?
200, 200, 200 = ¿gris claro?

o Algun tono claro asi:

200, 200, 255 = ¿Azul muy claro?
255, 150, 150 = ¿Rosa?
255, 40, 0 = ¿Naranja oscuro o rojo claro?

Podeis probar combinaciones, y si quereis que añada todos los colores que vayais probando aqui decirlos

Asi se van formando colores, variando entre los numeros


2. Funciones interesantes

Ahora vamos con algunas funciones que tiene LUA para la PSP interesantes. Estan sacadas de una recopilacion de funciones, es algo asi como un copiar pegar

2.1 Botones especiales -> Solo disponibles en hmv2

pad:home() -- Home tiene la funcion de salir por defecto, hay que desactivarsela
pad:hold()
pad:note()
pad:analogX() -- Rango de -127 a 128.
pad:analogY() -- Rango de -127 a 128.

2.2 Mensajes, Textos e imagenes

System.message()

Imprime un mensaje a la pantalla con las opciones: "Sí, no, y volver". Es decir un mensaje del sistema.

System.message("Hola",0) -- muestra solo la opcion de "volver".
System.message("Hola",1) -- muestra las opciones: "Sí, no, y volver".

Por si solo esto de arriba no sirve de nada, necesita esto:

System.buttonPressed()

Retorna la acción de la opción seleccionada en la función System.message(). Utilice "1" para que nos devulva "Yes/No" o "0" para que devuelva "1/0".

button = System.buttonPressed(1)
If button == "yes" then
System.Quit()
end

button = System.buttonPressed(0)
If button == 1 then
System.Quit()
end


2.2.1 Teclados:

System.startOSK( string_defecto , string_mensaje ) -- Muestra el teclado en pantalla.

isoname = System.startOSK( "ms0:/ISO/*.ISO", "Enter Name and Path" )
screen:print( 1, 1, isoname, red )


2.2.2 Ahora alguna de fuentes:

Font.init()

Inicializa la nueva libreria de fuentes de texto "TTF".

Font.term()

Termina y cierra la libreria de fuentes de texto "TTF".

font = Font.load( path/filename.ttf )

fuente = Font.load( "./fuentes/font.ttf" ) -- Carga una fuente de texto formato "TTF"
fuente:setPixelSizes(0, 20) -- Altura de la fuente 20 pixeles.
blanco = Color.new( 255, 255, 255 )
screen:fontPrint( fuente, x, y, "Script de Ejemplo", blanco )
screen.flip()

Font.unload( fontslot ) Borra una fuente "TTF" de un "slot".
Ejemplo: Font.unload( 1 )

Font.color( Rojo, Verde, Azul, Alpha ) Retorna un valor Hexadecimal de los componentes de un color.
Ejemplo: rojo = Font.color( 255, 0, 0, 255 ) -- "0xFF0000FF

Font.print( x, y, var, color, fontslot ) Escribe en la pantalla "screen" con una fuente de texto "TTF".
Ejemplo:
Font.init()
Font.load( "ms0/font.ttf", 1 )
blanco = Font.color( 255, 255, 255, 255 )
Font.print( 10, 10, "Hola Betapeseperos.", blanco, 1 )
screen.flip()
Font.unload(1)
Font.term()

IntraFont.init() Inicializa la nueva libreria de las IntraFont o fuentes propias de la PSP "PGF".

IntraFont.term() Termina y cierra la libreria IntraFont.

IntraFont.load( "flash0:/font/ltn8.pgf", opcion ) Carga una fuente texto "PGF" y una opción de las cuatro:
opcion: 1 = Normal 2 = Calidad Rápida 3 = Calidad Buena 4 = Japaniese
Ejemplo: IntraFont.load( "flash0:/font/ltn8.pgf", 2 )

IntraFont.color( Rojo, Verde, Azul, Alpha ) Retorna un valor Hexadecimal de los componentes de un color.
Ejemplo: rojo = IntraFont.color( 255, 0, 0, 255 ) -- "0xFF0000FF

IntraFont.print( x, y, var, Size, Color, Glow ) Escribe en pantalla con un Color y una Sombra.
Ejemplo:
IntraFont.init()
IntraFont.load( "flash0:/font/ltn8.pgf", 2 )
red = IntraFont.color( 255, 0, 0, 255 )
yellow = IntraFont.color( 0, 255, 255, 255 )
screen:clear()
Gu.start3d()
IntraFont.print( 1, 35, "WARNING", 3, yellow, red )
IntraFont.print( 1, 90, "PELIGRO", 1, red, 0 )
Gu.end3d()
screen.flip()
IntraFont.term()

image:drawLine( x , y , x1, y1, color ) -- Dibuja una línea.

nil image:fillRect( x , y , ancho , alto , color ) -- Dibuja un rectángulo.


nil image:pixel( x , y , color ) -- Pinta un pixel o punto.

imagen = Image.createEmpty( 50 , 50 )
blanco = Color.new( 255, 255, 255 )
imagen:pixel( 10, 10, blanco )
screen:blit( 0, 0, imagen, true )
screen.flip()


color = imagen:pixel( x , y ) -- Obtiene el color de un punto o pixel.


2.3 Tiempo

System.getDate( opción )

Retorna la fecha de la consola PSP, no funciona en el PC al ser una función específica. Solo una opción a la vez: año = 1, mes = 2, día = 3
anno = System.getDate(1) -- Retorna el año.


System.getTime( opción )

Devuelve la hora de la consola PSP, no funciona en el PC al ser una función específica. Solo una opción: hora = 1, minutos = 2, segundos = 3, microseg = 4, pm-am = 5.
hora = System.getTime(1) -- Retorna la hora de la PSP.


2.4 Archivos

dofile( path/file.lua )

Carga y ejecuta código LUA que esté en un archivo. Es útil para organizar el programa en partes, en un archivo los colores e imágenes, en otro los sonidos, en otro las funciones, etc... Es util para descomponer un programa en módulos para su mejor extructuración evitando un único archivo demasiado extenso.

Ejemplo:
dofile("./archivos/variables.lua")


loadfile( path/file.lua )

Carga código LUA que esté en un archivo. Es util para descomponer un programa en módulos que se ván ha ejecutar varias veces, como presentaciones, animaciones, tutoriales, etc... En definitiva ejecuta código similar a una función solo que es externa y sin argumentos de entrada ni salida.

_tutorial = loadfile("./System/tutorial.lua") -- Carga el código.
_tutorial() -- Ejecuta el código como una función.


System.createDirectory( path )
Crea un nuevo directorio.
Ejemplo:
System.createDirectory("LuaPlayerHM")


System.doesDirExist( path )
Retorna 1 si existe el Directorio, 0 si no existe.
Ejemplo:
ok = System.doesDirExist("ms0:/psp")


System.doesFileExist( path/file )
Retorna 1 si existe el archivos, 0 si no existe.
Ejemplo:
ok = System.doesFileExist("ms0:/psp/eboot.pbp")


System.copyFile( oldpath/file , newpath/file , 1-0 )
Copia un archivo a otro lugar, 1 Borra archivo viejo, 0 no lo borra.
Ejemplo:
System.copyFile("oldfiledir.lol","newfiledir.lol",1) -- Mueve el archivo.
System.copyFile("oldfiledir.lol","newfiledir.lol",0) -- Copia el archivo.


System.removeDirectory( path )
Borra un directorio.
Ejemplo:
System.removeDirectory("SonyOFW")

System.removeFile( path/file )
Borra un archivo. Solo válida para PSP no para PC.
Ejemplo:
System.removeFile("Sonyrestrictions.lol")


2.5 Info de la PSP

System.nickName()
-- Retorna el Nickname de la PSP.
name = System.nickName()


System.playerVer()
-- Retorna la versión del LuaPlayerHM:
ver = System.playerVer()


string System.cfwVersion()
-- Retorna la versión del Custom FirmWare de la PSP.
Muestra la versión del FirmWare de la PSP, seguido de "M33" si es un CFw de Dax o "???" si es de otro. Ahora actualizado a CFW Gen.
CFver = System.cfwVersion()
-- Retorna "3.90M33-3"


System.getModel()
Retorna el modelo de consola PSP, Clasica o Slim. El modelo Slim tiene el doble de memoria. Usa (1) para que retorne un string o (0) para que retorne un "number":
PSP Clasica string = "PHAT" number = 1000
PSP Slim string = "SLIM" number = 2000

PSPtype = System.getModel(1) -- Retorna "PHAT"
PSPtype = System.getModel(0) -- Retorna "1000"


System.madeby() -- Muestra la versión LuaPlayerHM y los creadores, ejemplo: System.madeby()
Muestra la versión entre parentesis así: ( 1 para "sí / no", o 0 "para volver" ) : System.madeby(0)


System.getTotalSize() -- Tamaño total del dispositivo: size = System.getTotalSize("ms0:/")


System.getFreeSpace() -- Espacio libre del dispositivo: size = System.getFreeSpace("ms0:/")


System.getFileSize() -- Tamaño en bytes de un archivo: size = System.getFileSize("ms0:/hello.txt")


System.getDirSize() -- Tamaño en bytes de un directorio: size = System.getFileSize("ms0:/PSP")


System.powerIsPowerOnline() -- Comprueba si está conectada a un sistema de alimentación externo.


System.powerIsBatteryExist() -- Comprueba si la batería está conectada.


System.powerIsBatteryCharging() -- Comprueba si la batería está cargando.


System.powerGetBatteryChargingStatus() -- Comprueba el estado de carga de la batería.


System.powerIsLowBattery() -- Comprueba si la batería está baja.


System.powerGetBatteryLifePercent() -- Devuelve el porcentaje de carga de la batería.


System.powerGetBatteryLifeTime() -- Devuelve el tiempo restante de la batería.


System.powerGetBatteryTemp() -- Devuelve la temperatura de la batería.


System.powerGetBatteryVolt() -- Devuelve el voltaje de la batería.


System.LCDTimerGet() -- Devuelve el tiempo del powersave.


System.getBusSpeed() -- Returns the Bus speed.


System.getCpuSpeed() -- Retorna la velocidad de la CPU.


number System.getFreeMemory() -- Retorna los bytes de memoria libres.
screen:print(0,0, System.getFreeMemory() / 1024 / 1024 .. " megabytes memoria libre." , color )


UMD.checkDisk() -- Comprueba si hay un disco UMD en la unidad.


UMD.getSize() -- Retorna el tamaño en bytes de un UMD.
UMDSize = UMD.getSize()


2.6 Funciones de la PSP

System.powerTick()
Envía un " power tick" a la PSP. Detiene la psp va a al modo de espera y powersaving mode.


System.LCDTimerEnable() -- Activa que la pantalla LCD se apague después de no actividad.


System.LCDTimerDisable() -- Desactiva que la pantalla LCD se apague después de no actividad.


System.suspend() -- Pone la PSP en modo suspendido.


System.shutdown() -- Apaga la consola PSP.


System.Quit() -- Termina la ejecución LuaPlayer y sale al XMB.


System.setLow() -- Pone la Cpu a 133Mhz


System.setReg() -- Pone la Cpu a 266Mhz


System.setHigh() -- Pone la Cpu a 333Mhz


System.memclean()
Limpia la memoria y borra los archivos no usados en la memoria. "Úsala para conseguir memoria libre."


UMD.init()
Inicia la unidad UMD y comprueba si hay disco. Si no hay disco muestra un mensaje y no carga la unidad UMD "disk0:â€
Avatar de Usuario
the_marioga
Colaborador
Colaborador
 
Mensajes: 21
Registrado: Miércoles, 17 Febrero 2010, 14:56

Volver a PlayStation Portable

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron