Tutorial De Programacion En LUA - Capitulo 2
Posted: Friday, 02 April 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
"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:
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 ):
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.
Como podeis ver (a no ser que seais ciegos XD) es que emos cargado las funciones de porcentage y tiempo de la bateria
Bien estas 2 lineas se encargan de que la PSP reconozca los botones que pulsamos
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
Esto ya lo conocemos del primer tuto asi que no hace falta explicarlo solo decir que se ejecutara al pulsar derecha
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()
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
Esto ya lo conoceis, la unica diferencia es que aqui esta refiriendose al L
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:
Se quedaria como ahi arriba. Y ahora el resto de la pulsacion:
Ya sabeis para que sirve
Y ahora vamos con el bucle principal del programa
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
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
Code: Select all
porcentagebateria = System.powerGetBatteryLifePercent()
"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:
Code: Select all
--Definimos colores
blanco = Color.new(255, 255, 255)
azul = Color.new (0, 0, 255)
Weno vamos con lo nuevo(es un codigo largo pero luego lo analizaremos ):
Code: Select all
--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
Code: Select all
porcentagebateria = System.powerGetBatteryLifePercent()
tiempobateria = System.powerGetBatteryLifeTime()
Code: Select all
function LeerPulsacion ()
pad = Controls.read()
Code: Select all
if pad:right() then
Code: Select all
screen:print( 150, 130, "Esta pulsando derecha", blanco)
screen.flip()
Code: Select all
screen.waitVblankStart(100)
screen.flip()
Code: Select all
end
Ahora describire la pulsacion de la L para enseñar como e usado la variable
Code: Select all
if pad:l() then
Code: Select all
screen:print( 150, 130, "Porcentage", blanco)
screen:print(160, 140, " "..porcentagebateria, blanco)
Code: Select all
if pad:l() then
screen:print(160, 140, "Porcentage de la bateria: "..System.powerGetBatteryLifePercent(), blanco)
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end
Code: Select all
screen.flip()
screen.waitVblankStart(100)
screen.flip()
end
Y ahora vamos con el bucle principal del programa
Code: Select all
--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