Tutorial De Programacion En LUA - Capitulo 6

Todo sobre la primera portátil de Sony

Moderators: Webmaster, Administrador, Moderador

Post Reply
the_marioga
Colaborador
Colaborador
Posts: 21
Joined: Wednesday, 17 February 2010, 14:56

Tutorial De Programacion En LUA - Capitulo 6

Post by the_marioga »

Capitulo 6. Menus Avanzados(Aun no graficos)


AVISO: ESTE TUTORIAL NO ESTA BETATESTEADO NI POR MI; SI HAY ALGUN ERROR ME LO DECIS

Os e enseñado a elegir entre 2, pero k pasa si keremos... 182, weno esos son muchos mejor 4, pues aki veremos k pasa.

Os pongo un codigo(el de mi USB menu(que alguien plagio y llamo Acceso PSP) pero lo voy a encoger, el original tiene 9

funciones) y os explico

Code: Select all

  --colores
  blanco = Color.new(255, 255, 255)
  verde = Color.new(0, 255, 0)
  azul = Color.new(0, 0, 255)
  --Funciones y variables
  current = 4
  --Lectura pulsaciones
  function LeerPulsacion ()
  pad = Controls.read()
  if pad:down() and pad~=prevPad then
  if current<4 then
  current=current+1
  else
  current=1
  end
  elseif pad:up() and pad~=prevPad then
  if current>1 then 
  current=current-1
  else
  current=4
  end
  end
  prevPad=pad
  if pad:cross() and pad~=prevpad then
  if current == 1 then
  screen:clear(blanco)
  screen:print(150, 150,  "USB mode - Flash0", verde)
  screen.flip()
  screen.waitVblankStart(150)
  System.usbDiskModeDeactivate()  
  System.usbDevFlash0() 
  System.usbDiskModeActivate()
  end
  if current == 2 then
  screen:clear(blanco)
  screen:print(150, 150,  "USB mode - Flash1", verde)
  screen.flip()
  screen.waitVblankStart(150)
  System.usbDiskModeDeactivate()  
  System.usbDevFlash1() 
  System.usbDiskModeActivate()
  end
  if current == 3 then
  screen:clear(blanco)
  screen:print(150, 150,  "USB mode - Flash2", verde)
  screen.flip()
  screen.waitVblankStart(150)
  System.usbDiskModeDeactivate()  
  System.usbDevFlash2() 
  System.usbDiskModeActivate()
  end
  if current == 4 then
  screen:clear(blanco)
  screen:print(150, 150,  "USB mode - flash3", verde)
  screen.flip()
  screen.waitVblankStart(150)
  System.usbDiskModeDeactivate()  
  System.usbDevFlash3() 
  System.usbDiskModeActivate()
  end
  end
  end 
  while true do
  prevpad=pad
  LeerPulsacion()
  screen:clear()
  screen:print(110, 1, ">USB menu<", blanco)
  if current==1 then  
  screen:print(1, 21, "USB flash0", verde)
  screen:print(1, 31, "USB flash1", azul)
  screen:print(1, 41, "USB flash2", azul)
  screen:print(1, 51, "USB flash3", azul)
  elseif current==2 then
  screen:print(110, 1, ">USB menu<", blanco)
  screen:print(1, 21, "USB flash0", azul)
  screen:print(1, 31, "USB flash1", verde)
  screen:print(1, 41, "USB flash2", azul)
  screen:print(1, 51, "USB flash3", azul)
  elseif current==3 then
  screen:print(110, 1, ">USB menu<", blanco)
  screen:print(1, 21, "USB flash0", azul)
  screen:print(1, 31, "USB flash1", azul)
  screen:print(1, 41, "USB flash2", verde)
  screen:print(1, 51, "USB flash3", azul)
  elseif current==4 then
  screen:print(110, 1, ">USB menu<", blanco)
  screen:print(1, 21, "USB flash0", azul)
  screen:print(1, 31, "USB flash1", azul)
  screen:print(1, 41, "USB flash2", azul)
  screen:print(1, 51, "USB flash3", verde)
  end
  screen:print(1, 200, "Pulsa arriba y abajo para seleccionar la opcion deseada(verde)", blanco)
  screen:print(1, 212, "Pulsa X para ejecutar la Opcion", blanco)
  screen.flip()
  screen.waitVblankStart()
  end
Ahora os explico por partes. Weno antes decir que como habreis apreciado este va con numeros

Code: Select all

  if pad:down() and pad=prevPad then
  if current<4 then
  current=current+1
  else
  current=1
  end
  elseif pad:up() and pad~=prevPad then
  if current>1 then 
  current=current-1
  else
  current=4
  end
  end
pad~=prevpad hace que al soltar la tecla no se vuelva otra vez a su estado inicial
If current<4 then sirve para si la variable current es menor a 4 se ejecute lo siguiente que es
current=current+1 esto suma 1 a la variable current
else significa, de lo contrario
current = 1 significa convertir la variable current en 1
elseif es una mezcla entre else e if

y lo demas es practicamente igual

Code: Select all

 if pad:cross() and pad~=prevpad then
  if current == 1 then
if current == 1 then significa que si la variable current significa 1 en ese momento entonces...

Code: Select all

elseif current==4 then
  screen:print(110, 1, ">USB menu<", blanco)
Y aki pues lo mismo pero para mostrar el texto diferente cada vez k se sube o se baja

Y ya esta otro tuto mas al saco
Post Reply