Tutorial De Programacion En LUA - Capitulo 2

Todo sobre la primera portátil de Sony

Moderadores: Webmaster, Administrador, Moderador

Tutorial De Programacion En LUA - Capitulo 2

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

Capitulo 2: Funciones y pulsaciones

Llegamos a algo interesante, vamos a hacer que nuestro programa sepa que estamos pulsando, y de regalo a ver el % y el tiempo de la bateria, pero antes vamos a explicar que es una variable(hara falta para el tiempo, aunk tambien se puede activar sin variables)

1. Variables

Una variable es como un atajo ejemplo

Código: Seleccionar todo
porcentagebateria = System.powerGetBatteryLifePercent()


"porcentagebateria" es el nombre de la variable podrias poner el que quisieras

"System.powerGetBatteryLifePercent()" es la instruccion que se usa para ver el % de la bateria

El "=" es para asignar la instruccion a la variable

2. Lectura de pulsaciones

Y llegamos a lo interesante, vamos a ver como hacer que la PSP nos entienda, o al menos sepa que estamos pulsando y responda de alguna manera. Para ello vamos a hacer un programa, el siguiente:

Código: Seleccionar todo
--Definimos colores
blanco = Color.new(255, 255, 255)
azul = Color.new (0, 0, 255)


Esta parte ya la sabemos del capitulo 1, aqui usaremos 2 colores para que se vea mas bonito XD

Weno vamos con lo nuevo(es un codigo largo pero luego lo analizaremos ):

Código: Seleccionar todo
 
--Variables y Pulsaciones
porcentagebateria = System.powerGetBatteryLifePercent()
tiempobateria = System.powerGetBatteryLifeTime() 
function LeerPulsacion ()
pad = Controls.read()if pad:right() then
screen:print( 150, 130, "Esta pulsando derecha", blanco)
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end
if pad:up() then
screen:print( 150, 130, "Esta pulsando arriba", blanco)
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end
if pad:down() then
screen:print( 150, 130, "Esta pulsando abajo", blanco)
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end
if pad:left() then
screen:print( 150, 130, "Esta pulsando izquierda", blanco)
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end
if pad:cross() then
screen:print( 150, 130, "Esta pulsando equis", blanco)
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end
if pad:triangle() then
screen:print( 150, 130, "Esta pulsando triangulo", blanco)
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end
if pad:circle() then
screen:print( 150, 130, "Esta pulsando circulo", blanco)
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end
if pad:square() then
screen:print( 150, 130, "Esta pulsando cuadrado", blanco)
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end
if pad:l() then
screen:print(160, 140, " "..porcentagebateria, blanco)
screen:print( 150, 130, "Porcentage", blanco)
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end
if pad:r() then
screen:print(160, 140, " "..tiempobateria, blanco)
screen:print( 150, 130, "Tiempo", blanco)
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end
if pad:start() then
screen:print( 150, 130, "Esta pulsando start", blanco)
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end
if pad:select() then
screen:print( 150, 130, "Esta pulsando select", blanco)
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end
end


Bueno aqui esta lo nuevo como veis no es pequeño pero es k le e mos dado funciones a todos los botones (L, R, [], /\ , O, X, y el pad de direccion, start y select y home que siempre tiene; los demas no le emos asignado funcion). Ahora analizaremos el principio, derecha y L.

Código: Seleccionar todo
porcentagebateria = System.powerGetBatteryLifePercent()
tiempobateria = System.powerGetBatteryLifeTime() 


Como podeis ver (a no ser que seais ciegos XD) es que emos cargado las funciones de porcentage y tiempo de la bateria

Código: Seleccionar todo
function LeerPulsacion ()
pad = Controls.read()


Bien estas 2 lineas se encargan de que la PSP reconozca los botones que pulsamos

Código: Seleccionar todo
if pad:right() then


Traducido a español seria " Si pulsas derecha entonces" y eso es lo que hace, si pulsamos el boton derecha entonces se ejecutara lo escrito entre eso y el siquiente end

Código: Seleccionar todo
screen:print( 150, 130, "Esta pulsando derecha", blanco)
screen.flip()


Esto ya lo conocemos del primer tuto asi que no hace falta explicarlo solo decir que se ejecutara al pulsar derecha

Código: Seleccionar todo
screen.waitVblankStart(100)
screen.flip()


Estas 2 lineas son un retardo, es decir que el screen:print de encima se mantega en la pantalla el tiempo puesto entre los parentesis de screen.waitVblankStart()

Código: Seleccionar todo
end


Esto cierra la pulsacion para que solo haga lo indicado encima

Ahora describire la pulsacion de la L para enseñar como e usado la variable

Código: Seleccionar todo
if pad:l() then


Esto ya lo conoceis, la unica diferencia es que aqui esta refiriendose al L

Código: Seleccionar todo
screen:print( 150, 130, "Porcentage", blanco)
screen:print(160, 140, " "..porcentagebateria, blanco)


Aqui estamos llamando a la variable, para que al pulsar L se muestre el % de la bateria tambien nos podriamos ahorrar la variable y ponerlo donde estamos ahora mismo en lugar del porcentagebateria, se quedaria asi:

Código: Seleccionar todo
if pad:l() then
screen:print(160, 140, "Porcentage de la bateria: "..System.powerGetBatteryLifePercent(), blanco)
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end


Se quedaria como ahi arriba. Y ahora el resto de la pulsacion:

Código: Seleccionar todo
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end


Ya sabeis para que sirve


Y ahora vamos con el bucle principal del programa

Código: Seleccionar todo
--Bucle principal del programa
while true do
screen:clear()
screen:print(1, 1, "Pulsa L para ver el % de la bateria", azul)
screen:print(1, 11, "Pulsa R para ver el tiempo de la bateria", azul)
screen:print(1, 21, "Pulsa los demas botones para que se lea su pulsacion", azul)
screen.flip()
LeerPulsacion()
end



Eso tambien sabeis para que sirve, con la diferencia del LeerPulsacion() que esta cargando la funcion.



Pues ya esta, hemos acabado otro tutorial mas de programacion en lua guardar el archivo como script.lua y ejecutarlo del mismo modo que el otro
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 1 invitado

cron