Anuncios Google

Algunas preguntas sobre LuaDEV y sus funciones

Estas son algunas preguntas sobre funciones de LuaDEV que no se como se usan y me gustaría aprender a usarlas, agradecería que me pusierais un ejemplo de cada una.

Ahi van:

 

  • ¿Para que sirve un break() y como se usa? (agradecería que me pusierais un ejemplo util)
  • ¿Para que sirve la función loadstring() y como se usa?
  • Y el último, no se si me entendeis pero intentaré explicarlo bien, como puedo hacer un HB en el que haiga un menú con 3 o más opciones y si elijo opción 1 abra un bucle, si elijo 2 otro bucle y 3 otro distinto y sin el dofile() a otro lua, un solo archivo

 

Gracias de antemano.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Jepte

un tipo de

un tipo de menu

____________________________

menu=0

 

 

 

while true do

if menu==0 then

 

aqui pones loque

quieras que salga

en el menu 0

 

if controls.cualquiera() then

menu=1

end

------------------------------------

 

if menu==1 then

blabla

bla

bla

 

if controls.cualquiera()

menu=el quesea

end

 

end

 

 

 

end

Otra cosa

Otra cosa ¿como puedo saber los FPS?

 

Saludos y gracias por la ayuda!

¿Esto podría funcionar?

¿Esto podría funcionar?

 

bucle1 = false
bucle2 = false
bucle3 = false
quit = false
 
while (not quit) do
controls.read()
 
if controls.press("cross") then
bucle1 = not bucle1
quit = not quit
end
if controls.press("square") then
bucle2 = not bucle2
quit = not quit
end
if controls.press("triangle") then 
bucle3 = not bucle3
quit = not quit
end
 
screen.flip()
end
 
while (bucle1) do
-- Aqui el bucle 1
end
 
while (bucle2) do
-- Aqui el bucle 2
end
 
while (bucle3) do
-- Aqui el bucle 3
end
 
 
 
-- Un poco rollo ¿no?, la pregunta es ¿funcionaría?

 

Saludos!

Imagen de Andres_Ne

Ah y con respecto a lo del

Ah y con respecto a lo del menu poddrias hacerlo con funciones 

por ejemplo

function opcion1 ()--opcion 1
	while true do
		controls.read()
			creditos o lo que valla en esto
		screen.flip()
	end
end
 
function opcion2()--opcion 2
	while true do
		controls.read()
			opciones o lo que sea ;)
		screen.flip()
	end
end
 
function opcion3()--opcion 3
	while true do
		controls.read()
			eljuego_o_lo_que_deses
		screen.flip()
	end
end
 
while true do---blucle con el que trabajaremos
	controls.read()
		aqui va el menu
	if controls.cross() and opcion==1 then 
			opcion1()
		elseif 
			controls.cross() and opcion==2 then
				opcion2()
		elseif
			controls.cross() and opcion==3 then
				opcion3()
	end
 
	screen.flip()
end


 

 

Imagen de NEKERAFA

Y aún más fácil

-- Funciones
function Opcion1()
   screen.print(10, 10, " Esta es la opción 1")
end
 
function Opcion2()
   screen.print(10, 10, " Esta es la opción 2")
end
 
function Opcion3()
   screen.print(10, 10, " Esta es la opción 3")
end
-- Y todas las que quieras!!
 
-- Variables
opcionAct = 1 -- Variable de opción actual
opcionesTextos = {"Opción 1", "Opción 2", "Opción 3", "Salir"} -- Texto de cada opción
menu = true -- Variable del menú
 
-- Bucle principal
while true do
   controls.read() -- Leo los controles
 
   if menu then -- Si estas en el menú
      -- Imprimo todos los textos
      for opcion = 1, #opcionesTexto do
         if opcionAct == opcion then screen.print(10, 10+(15*opcion-1), "> "..opcionesTexto[opcion])
         else screen.print(10, 10+(15*opcion-1), opcionesTexto[opcion]) end
      end
 
      -- Cambio las opciones
      if controls.press("up") then opcionesAct = opcionesAct-1
      elseif controls.press("down") then opcionesAct = opcionesAct+1 end
   else -- Si no estas en el menú
      -- Muestro las opciones
      if opcionAct == 1 then Opcion1()
      elseif opcionAct == 2 then Opcion2()
      elseif opcionAct == 3 then Opcion3()
      -- La última la reservo para salir del homebrew
      elseif opcionAct == #opcionesTexto-1 then os.exit() end
      if controls.press("circle") then menu = true end
   end
 
   -- Cambia la variable menú para salir o entrar
   if controls.press("cross") then menu = not menu end
 
   screen.flip()
end

Con solo un bucle y tres funciones y tres variables, he creado un menú muy completito.


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

...

Como que break() no existe, la que no existe es broke()

Imagen de NEKERAFA

No

Ni break() ni broke() ni err() existen.

Primero, porque no puedes llamar a una variable (En este caso de tipo función) como una palabra reservada del lenguaje, y segundo porque no está definida.

Aparte, os estais confundiendo mucho. No tiene nada que ver que cuando pongas esta función puedas acceder al USB y/o hacer debuging. Eso es porque Deviante edito internamente la forma de procesar los mensajes de error. En este caso, muestra una animación y el error, aparte de activar el USB.

Lo que pasa que al no existir, es decir, al no estar invocada, Lua pra su ejecución porque hubo un error, y nada más.


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

Imagen de Andres_Ne

Ok, tienes razon de que

Ok, tienes razon de que break() no existe ni broke()

 

Pero lo que yo quise decir es que

broke()=de alguna forma sea lo que sea salta error y eso nos hace conectar por usb.

break()=tampoco existe me equivoque mas abajo, es  break sin parentesis pero alfin de cuentas   esto sirve para safarse de un bucle no? eso es lo que el hombre nececita.ademas recuerda que en los tutos pusieron broke() para dar error, en terminos oficiales de lua,para llamar una funcion que no ah sido declarada ..para que? ,para dar error y no tener que salir a xmb ...esa es su pseudofuncion (en los tuyos) dar error como tambien podria ser     cualquier otra funcion que no haiga sigo declarada ,repito: nos enseñaron a usar el broke() para dar error ..nada mas


 

 

Imagen de NEKERAFA

Mmm...

break sirve para, como su nombre díce, romper el bucle, es decir, salir de la ejecución del bucle. Sirve para todos los tipos, sea for, while, repeat, do, ect...


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

Imagen de Andres_Ne

break() es para liberarse de

break() es para liberarse de un bucle ejemplo:
 
while true do
 
	controls.read()
 
	if loquesea then 
 
		blablla()
 
	end
 
	break()
 
end
 
 
 
while true do
 
	estoy en este bucle porque sali del anterior con break()
 
PD:broke() no es que no existe si no que es para producir un error en tu code y no tener que salir hasta conexon ubs y actualizar lo que vallas a actualizar  simplemente es un "atajo" para que luadev se conecte por usb al ordenador y evitarte salir hasta el xmb.
 
Saludos.


 

 

Imagen de NEKERAFA

Mmm...

Si existiera la funcion, y estuviera bien programada, no daría error al llamarla

Imagen de m.rr

Es break a secas sin

Es break a secas sin parentesis

Imagen de Andres_Ne

Tienes razon amigo..xD,,se me

Tienes razon amigo..xD,,se me escapo,un saludo

Imagen de m.rr

leiste el mp? pq me voy a

leiste el mp? pq me voy a hacer una nueva xDD

Imagen de NEKERAFA

Mmm...

  • break() no existe. Si lo que te refieres es a la función de los tutoriales, es una función para provocar un error (Debido a que no existe) y/o poder hacer debuging.
  • Aquí tienes: http://www.lua.org/manual/5.1/es/manual.html#pdf-loadstring
  • Mmm... Hay muchas formas de hacerlo, incluso desde el mismo bucle. Para ello estan las funciones. Con las funciones puedes poner un cierto código que vas a utilizar muchas veces, o, como es tu caso, para fragmentar el programa y organizarlo mejor.
  • Yo te recomendaría hacer una variable global que guarde la opcion actual, y otra que guarde si estas en el menú o no (Un booleano vale). En este caso, si quieres llegar a ser un buen programador, no te puedo poner el código. Experimenta, prueba y utiliza todo lo que sabes para poder solucionarlo. También puedes utilizar una hoja de papel para ir anotando todo y poder pensarlo mejor, te puede ayudar.

P.D: Personalmente, yo lo voy anotando todo en el coco. Todo lo que quiero hacer lo tengo ahí guardado XD.


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

Imagen de AitorDB

By Aitor

Lo de broke() es para provocar un error, ya que llama a una función que no ha sido declarada y eso hace que se provoque un error con la pantallita de LuaDEV...

 

A lo segundo no tengo ni idea

 

Y aquí te dejo una solución que se me ha ocurrido:

 

Seleccion = 1 --Seleccion del menu
Principal = true --Bucle principal activado
Cantidad = 3 --Cantidad de menus
 
while principal do --Bucle principal
controls.read() --Leemos controles
 
if controls.press("up") then Seleccion = Selecion - 1 end --Cambio de menu
if controls.press("down") then Seleccion = Selecion + 1 end --Cambio de menu
 
if Seleccion > Cantidad then Seleccion = 1 end --Tope de menu
if Seleccion < 1 then Seleccion = Cantidad end --Tope de menu
 
if controls.press("cross") then Principal = false end --Salimos del bucle principal
 
-- Resto del code
 
screen.flip() --Damos la vuelta a la pantalla
end --Cerramos bucle principal
 
while not principal and Seleccion == 1 do --Bucle menu 1
 
--Code
 
end --Cerramos bucle menu 1
 
while not principal and Seleccion == 2 do --Bucle menu 2
 
--Code
 
end --Cerramos bucle menu 2
 
while not principal and Seleccion == 3 do --Bucle menu 3
 
--Code
 
end --Cerramos bucle menu 3


Sígueme en Twitter: @Aitor_db

Imagen de AitorDB

By Aitor

Sorry hay un pequeño fallo y no me deja abrir lo de los códigos =S te lo paso corregido:

 

Seleccion = 1 --Seleccion del menu
Principal = true --Bucle principal activado
Cantidad = 3 --Cantidad de menus
 
while principal do --Bucle principal
controls.read() --Leemos controles
 
if controls.press("up") then Seleccion = Selecion - 1 end --Cambio de menu
if controls.press("down") then Seleccion = Selecion + 1 end --Cambio de menu
 
if Seleccion > Cantidad then Seleccion = 1 end --Tope de menu
if Seleccion < 1 then Seleccion = Cantidad end --Tope de menu
 
if controls.press("cross") then Principal = false end --Salimos del bucle principal
 
-- Resto del code
 
screen.flip() --Damos la vuelta a la pantalla
end --Cerramos bucle principal
 
while not Principal and Seleccion == 1 do --Bucle menu 1
 
--Code
 
end --Cerramos bucle menu 1
 
while not Principal and Seleccion == 2 do --Bucle menu 2
 
--Code
 
end --Cerramos bucle menu 2
 
while not Principal and Seleccion == 3 do --Bucle menu 3
 
--Code
 
end --Cerramos bucle menu 3


Sígueme en Twitter: @Aitor_db

Imagen de Andres_Ne

Pss. si, esto seguramente

Pss.

si, esto seguramente funcionaria pero para que complicarse la existencia,si existen las funciones?

y los break?

Imagen de NEKERAFA

Buff

Mejor con una función. Aparte, de que al salir de un menú, se saldría del programa.

Imagen de AitorDB

By Aitor

Yo lo he colocado como él lo ha pedido, claro que es más fácil con funciones y más cómodo...

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.