[Explicación] Funcionamiento de Hello! Aprende Inglés
Hello!Aprende Inglés, un homebrew muy original, diseñado para la introducción al aprendizaje del idioma inglés, fácil de usar y con una muy cuidada interfaz gráfica.
Está programado en Luaesencialmente de la siguiente manera:
Cita:
-El eboot.pbp arranca el archivo “system.lua”, en la carpeta System, el cuál da orden de iniciar el archivo “todopsp.lua” el cual carga la imagen de TDP, este tiene un temporizador de 2 segundos, para luego ejecutar “Login.lua”.
-“Login.lua” carga una imagen de “Iniciar Sesión”, y mediante un condicional “If pad:cross() then dofile("Menu.lua") end”, si presionas X, cargara el archivo “Bienvenida.lua” (carga la imagen de Bienvenida), el cual mediante también un condicional “If..”, si presionas X, cargara "Menu.lua”.
-“Menu.lua”, carga un fondo, y mediante condicionales, “If..”, si se presiona cierta tecla, como X, O, Cuadrado: ó Triangulo, te enviará a distintos archivos “.lua”, como Lecciones, Verbos, Vocabulario.
- El mismo sistema de Condicionales, “If…”, se ocupa en la mayoría de los archivos dentro de los submenús, siendo el gatillo “R”, la opción volver.
Inicia así:
System.lua (Archivo que arranca el Eboot.pbp)
Cita:
--Dark_Zeus
--Hello!
dofile("todopsp.lua") -- ***Abre el archivo "todopsp.lua"***
todopsp.lua (Carga la imagen de TodoPSP y luego de 2 segundos Abre "Login.lua")
Cita:
--Dark_Zeus
TodoPSP = Image.load("Imagenes/todopsp.png") --*****Carga la Imagen de TodoPSP y se la asigna a la variable TodoPSP*****
ztiempo = Timer.new() --****Para el temporizador..****
while true do --***Bucle Pincipal***
screen:clear() --***Limpia la pantalla***
screen:blit(0,0,TodoPSP) --****Introduce la imagen con la variable antes designada TodoPSP****
xtiempo = ztiempo:time()
if xtiempo > 2000 then --***** Limitacion de 2 segundos para luego cargar un archivo lua******
dofile("Login.lua") -- *****Carga y ejecuta archivo LUA *****
end
screen.waitVblankStart() --******Espera hasta que la pantalla esté preparada para empezar a dibujar.*****
screen.flip() --*****Muestra en pantalla lo dibujado en "screen"*******
oldpad = pad
end
Login.lua (Carga un fondo de Login estilo Vista y al presionar X, abre el archivo "Bienvenida.lua")
Cita:
--Dark_Zeus
--Hello!
--Login.lua
Login = Image.load("Imagenes/Login.png") --*****Carga la Imagen de Login y se la asigna a la variable Login*****
while true do
screen:blit(0, 0, Login, 0, 0, Login:width(), Login:height(), false) --****Introduce la imagen con la variable antes designada Login****
pad = Controls.read() ---***Esta función captura las teclas pulsadas en el teclado de la PSP. ****
if pad:cross() then ---*****Condicional If... si la X es presionada has esto,......****
dofile("Bienvenida.lua") -- *****Carga y ejecuta archivo LUA *****
end
screen.waitVblankStart() --******Espera hasta que la pantalla esté preparada para empezar a dibujar.*****
screen.flip() --*****Muestra en pantalla lo dibujado en "screen"*******
end
Bienvenida.lua (Carga la imagen de Bienvenida y al presionar X, abre el archivo "Menu.lua")
Cita:
--Dark_Zeus
--Hello!
--Bienvenida.lua
Bienvenida = Image.load("Imagenes/Bienvenida.png") --*****Carga la Imagen de Bienvenida y se la asigna a la variable Bienvenida*****
while true do
screen:blit(0, 0, Bienvenida, 0, 0, Bienvenida:width(), Bienvenida:height(), false)--****Introduce la imagen con la variable antes designada TodoPSP****
pad = Controls.read()
if pad:cross() then --**Si presionas X, te lleva al menu.**
dofile("Menu.lua")
end
screen.waitVblankStart()
screen.flip()
end
Menu.lua (Carga el fondo del Menú y designa las teclas que abriran las demas ventanas.)
Cita:
--Dark_Zeus
--Hello!
--Menu.lua
Menu = Image.load("Imagenes/Menu.png") --*****Carga la Imagen del Menu y se la asigna a la variable Menu*****
while true do
screen:blit(0, 0, Menu, 0, 0, Menu:width(), Menu:height(), false) --****Introduce la imagen con la variable antes designada Menu****
pad = Controls.read() ---***Esta función captura las teclas pulsadas en el teclado de la PSP. ****
if pad:triangle() then ---*****Condicional If... si el Triangulo es presionado Carga y ejecuta archivo "Lecciones.lua" ****
dofile("Lecciones.lua")
end
if pad:circle() then ---*****Condicional If... si O es presionado Carga y ejecuta archivo "Creditoslua" ****
dofile("Creditos.lua")
end
if pad:square() then ---*****Condicional If... si el Cuadrado es presionado Carga y ejecuta archivo "Verbos1.llua" ****
dofile("Verbos1.lua")
end
if pad:cross() then ---*****Condicional If... si la X es presionada Carga y ejecuta archivo "Vocabulario.lua" ****
dofile("Vocabulario.lua")
end
screen.waitVblankStart() --******Espera hasta que la pantalla esté preparada para empezar a dibujar.*****
screen.flip() --*****Muestra en pantalla lo dibujado en "screen"*******
end
Lecciones.lua (Se abre luego de presionar Triangulo en el Menu y dentro de ella se regresa al Menu con el gatillo "R".)
Cita:
--Dark_Zeus
--Hello!
--Lecciones.lua
Lecciones = Image.load("Imagenes/Lecciones.png") --**Carga la imagen en la variable Lecciones**
if pad:r() then --***Si presionas R, regresar al Menu Principal**
dofile("Menu.lua")
end
screen.waitVblankStart()
screen.flip()
end
Verbos1.lua (Se abre luego de presionar Cuadrado en el Menu, dentro de el se regresa al Menu con el gatillo "R" y se avanza presionando --> y se retrocede con presionando <-- o con el gatillo "R" .)
Cita:
--Dark_Zeus
--Hello!
--Verbos.lua
verbos = Image.load("Imagenes/Verbos1.png") --**Carga la imagen**
if pad:triangle() then --***Si presionas Triangulo, abre el archivo basico.lua**
dofile("basico.lua")
end
if pad:circle() then --***Si presionas Circulo, abre el archivo Numeros.lua**
dofile("numeros.lua")
end
if pad:square() then --***Si presionas Cuadrado, abre el archivo colores.lua**
dofile("colores.lua")
end
if pad:cross() then --***Si presionas X, abre el archivo dias.lua**
dofile("dias.lua")
end
if pad:r() then --***Si presionas R, regresa al Menu**
dofile("Menu.lua")
end
screen.waitVblankStart()
screen.flip()
end
El Funcionamiento Total del Programa funciona de esta manera, espero que les haya sido util esta info. a todos.
Cualquier duda o pregunta, en la que les pueda ser útil , yo muy feliz de ayudarles.
Muchas Gracias por su apoyo!, ... y Saludos a Todos!!
Última edición por Dark_Zeus fecha: 02/06/09 a las 18:27:54
The Following 2 Users Say Thank You to Dark_Zeus For This Useful Post:
Re: [Explicación] Funcionamiento de Hello! Aprende Inglés
Hola dark_zeus, gracias por detallar tanto el homebrew, ahora si que me animo a crear mi propia aplicacion de inglés, talvez mas adelante nos unimos y hacemos uno de francés... jejeje
Espero que ganes, te lo mereces.
Re: [Explicación] Funcionamiento de Hello! Aprende Inglés
muy bueno tio ese lenguaje se me hace conocido yake yo he montado un robot ( habla, se mueve, reconoce personas, objetos,etc) como proyecto de fin de curso. pero lo mio creo keera un poco mas complejo yake tenia ke programa un pic!
saludos y mucha suerte