| Inicio | Noticias | Foros PSP | Juegos | Videos | Manuales | Buscar | Contacto | Staff | Publicidad |

Retroceder   Foros PS Vita y PSP > Comunidad > Coder's Zone: Programacion PSP y PS Vita > TUTORIALES

Respuesta
 
Herramientas
Antiguo 01/02/09, 17:11:01   #1
marioga
Member
 
Fecha de Ingreso: jul 2008
Mensajes: 44
Thanks: 0
Thanked 39 Times in 14 Posts
marioga por el buen camino
Predeterminado Tutoriales de programacion en LUA - Capitulo 7

Capitulo 7. Menus Con cursor(joystick) basado en el menu UMD de Dark_cloud

Vamos con otro capitulo mas que os tengo abandonaos y luego me llorais

Vamos a aprender a hacer menos con cursor(si esa flechita como la que has usado para poner esta pagina)

Necesitais usar la imaginacion, luego vereis pk

Código:
-- Colores --
azul = Color.new(0,0,255)
blanco = Color.new(255,255,255)
-- Imagenes --
fondo = Image.load("ms0:/PSP/GAME/Programa/Imagenes/fondo.png")
cursor = Image.load("ms0:/PSP/GAME/Programa/Imagenes/cursor.png")
icono1 = Image.load("ms0:/PSP/GAME/Programa/Imagenes/icono1.png")
icono1sel = Image.load("ms0:/PSP/GAME/Programa/Imagenes/icono1sel.png")
icono2 = Image.load("ms0:/PSP/GAME/Programa/Imagenes/icono2.png")
icono2sel = Image.load("ms0:/PSP/GAME/Programa/Imagenes/icono2sel.png")
Lo de siempre carga de imagenes y colores. Supongamos que tenemos esas imagenes con esos nombres. Fondo es el fondo, cursor

es la flechita, icono1 es la imagen de la opcion 1, icono1sel es la opcion uno seleccionada(es decir con el cursor encima), icono2 la

opcion 2 y icono2sel pues la 2 elegida. Aqui se puede variar la variable, el nombre de la imagen, si quieres que cambie al

seleccionarla o no, etc...

Código:
-- Variables --
x = 0
x0 = 235
y0 = 193
x1 = 0
y1 = 0
nombreiso = " "
Esto dice donde tiene que empezar el cursor al iniciar el programa

Código:
-- Controles --
function LeerPulsacion()
pad = Controls.read()
dy = pad:analogY()
dx = pad:analogX()
if math.abs(dx) > 64 then
  x0 = x0 + dx / 24
end
if math.abs(dy) > 64 then
  y0 = y0 + dy / 24
end
if pad:up() then
  y0 = y0 - 8
end
if pad:down() then
  y0 = y0 + 8
end
if pad:right() then
  x0 = x0 + 8
end
if pad:left() then
  x0 = x0 - 8
end
if x0 >= 10 and x0 <= 200 and y0 >= 20 and y0 <= 250 and pad:cross() then
screen:clear()
 screen:print(1, 1, "Menu Ingles", blanco)
screen.flip()
screen:waitVblanckStart(200)
screen.flip()
end
if x0 >= 210 and x0 <= 400 and y0 >= 20 and y0 <= 250 and pad:cross() then
  screen:clear()
screen:print(1, 1, "Menu Español", blanco)
screen.flip()
screen:waitVblanckStart(200)
screen.flip()
end
if pad:circle() then
dofile("ms0:/PSP/GAME/MultiR-evolutionLUA/script.lua") 
end
if pad:start() then
break
end
end
Lectura de pulsaciones, analizamos por partes

Código:
dy = pad:analogY()
dx = pad:analogX()
if math.abs(dx) > 64 then
  x0 = x0 + dx / 24
end
if math.abs(dy) > 64 then
  y0 = y0 + dy / 24
end
Esto controla el movimiento del cursor con el joy stick

Código:
if pad:up() then
  y0 = y0 - 8
end
if pad:down() then
  y0 = y0 + 8
end
if pad:right() then
  x0 = x0 + 8
end
if pad:left() then
  x0 = x0 - 8
end
Esto el movimiento por los botones normales

Código:
if x0 >= 10 and x0 <= 200 and y0 >= 20 and y0 <= 250 and pad:cross() then
screen:clear()
 screen:print(1, 1, "Menu Ingles", blanco)
screen.flip()
screen:waitVblanckStart(200)
screen.flip()
end
if x0 >= 210 and x0 <= 400 and y0 >= 20 and y0 <= 250 and pad:cross() then
  screen:clear()
screen:print(1, 1, "Menu Español", blanco)
screen.flip()
screen:waitVblanckStart(200)
screen.flip()
end
Esto son las pulsaciones de X si las haces dentro de las coordenada que pone se ejecuta, sino, pues no

Código:
-- Bucle Principal --
while true do
if x0<0 then 
x0=0 
end
if x0>478 then 
x0=478 
end
if y0<0 then 
y0=0 
end
if y0>270 then 
y0=270 
end
x1 = x0
y1 = y0
-- Menu --
screen:blit(0,0,fondo)
screen:blit(10,20,icono1)
screen:blit(210,20,icono2)
-- Damos Efecto al pasar el Cursor Encima --
if x0 >= 10 and x0 <= 200 and y0 >= 20 and y0 <= 250 then
  screen:blit(32,81,icono1sel)
end
if x0 >= 210 and x0 <= 400 and y0 >= 20 and y0 <= 250 then
  screen:blit(190,81,icono2sel)
end
screen:blit(x1,y1,cursor)
screen.waitVblankStart()
screen.flip()
end
Analizamos

Código:
if x0<0 then 
x0=0 
end
if x0>478 then 
x0=478 
end
if y0<0 then 
y0=0 
end
if y0>270 then 
y0=270 
end
Esto es para que no se salga el cursor de la pantalla

Código:
x1 = x0
y1 = y0
Esto cambia el nombre a las variables para no liarse

Código:
screen:blit(0,0,fondo)
screen:blit(10,20,icono1)
screen:blit(210,20,icono2)
-- Damos Efecto al pasar el Cursor Encima --
if x0 >= 10 and x0 <= 200 and y0 >= 20 and y0 <= 250 then
  screen:blit(32,81,icono1sel)
end
if x0 >= 210 and x0 <= 400 and y0 >= 20 and y0 <= 250 then
  screen:blit(190,81,icono2sel)
end
screen:blit(x1,y1,cursor)
screen.waitVblankStart()
screen.flip()
end
Esto muestra las imagenes y hace que si se pasa por encima de las imagenes, se cambien a las seleccionadas


Y ya esta, perdonar que este un poco mal explicado, tal vez mas alante lo explique mejor, pero ya sabeis, un programador aprende investigando
__________________
Historia de mi psp slim-> 3.95 ->4.00 ->[PANDORA]->1.5 m33->3.95 m33 ->4.01 m33
marioga is offline   Responder Con Cita
The Following User Says Thank You to marioga For This Useful Post:
MABZ (19/12/10)
Respuesta

Bookmarks

Herramientas



La franja horaria es GMT +2. Ahora son las 03:32:46.


Powered by: vBulletin, Versión 3.8.5
Derechos de Autor ©2000 - 2019, Jelsoft Enterprises Ltd.
Traducción VBulletin por vbulletinhispano.com