Anuncios Google

Problemas en lua

 Pues hace tiempo que llevo queriendo hacer un menu para un homebrew que estoy desarrollando. Lo consegui pero solo con dos opciones pero cuando intento hacerlo con tres no funciona bien he probado con el old`pad pero tampoco lo que pasa es que confunde el primer pad:down con el segundo y no se hacer para que eso no ocurra

menu=Image.load("ms0:/PSP/GAME/LuaPlayerHM7/menu.png")
tema1=Image.load("ms0:/PSP/GAME/LuaPlayerHM7/tema1.png")
tema2=Image.load("ms0:/PSP/GAME/LuaPlayerHM7/tema2.png")
tema3=Image.load("ms0:/PSP/GAME/LuaPlayerHM7/tema3.png")
tema1b=Image.load("ms0:/PSP/GAME/LuaPlayerHM7/tema1b.png")
tema2b=Image.load("ms0:/PSP/GAME/LuaPlayerHM7/tema2b.png")
tema3b=Image.load("ms0:/PSP/GAME/LuaPlayerHM7/tema3b.png")
tema1c=Image.load("ms0:/PSP/GAME/LuaPlayerHM7/tema1c.png")
tema2c=Image.load("ms0:/PSP/GAME/LuaPlayerHM7/tema2c.png")
tema3c=Image.load("ms0:/PSP/GAME/LuaPlayerHM7/tema3c.png")
go=Image.load("ms0:/PSP/GAME/LuaPlayerHM7/go.png")  
 
 
 while true do
  pad=Controls.read()
  screen:clear()
 
  current={1,2,3,4,5}
  current[1]=tema1b
  current[2]=tema2
  current[3]=tema3
  current[4]=tema4
  current[5]=menu
 
 
  if pad:down() and oldpad:down()~=pad:down() then
   tema1b=tema1
   tema2=tema2b
   tema3=tema3c
  end
 
  if pad:cross() and tema1b==tema1 then
   dofile("script2.lua")
  end
 
  if pad:up() and oldpad:up()~=pad:up() and tema2==tema2b then
   tema1b=tema1c
   tema2=tema2c
   tema3=tema3c
  end 
 
  if pad:cross() and tema1b==tema1c then
   dofile("script3.lua")
  end
 
  if pad:down() and oldpad:down()~=pad:down() and tema2==tema2b then
   tema1b=tema1
   tema2=tema2c
   tema3=tema3b
  end
 
  if pad:cross() and tema2==tema2b then
   dofile("script4.lua")
  end
 
  if pad:up() and oldpad:up()~=pad:up() and tema3==tema3b then
   tema1b=tema1
   tema2=tema2c
   tema3=tema3b
  end 
 
  if pad:cross() and tema3==tema3b then
   dofile("script5.lua")
  end
 
  screen:blit(0,0,current[4])
  screen:blit(100,30,current[1])
  screen:blit(250,100,current[2])
  screen:blit(0,100,current[3])
 
  if pad:triangle() then
   System.message("Gracias a scenebeta a jjblanco a n3dexo y a scenebeta en general,GRACIAS",0)
  end
 
  screen.waitVblankStart()
  screen.flip()
  oldpad=pad
 end

ha y otra cosa cuando pongo
if pad:cross() then
screen:clear()
screen:blit(0,0,menu)
end
¿por qué no funciona?


PSP Slim TA-085v2 :OFW 3.72->3.80m33->3.90m33->4.01m33->5.00m33-6+Parche 5.00m33-7+5.00prometheus-3 v4+SNDC XMB mod->6.37ME-7->6.37ME-8->6.38ME->6.38ME-2->6.3ME-3->6.39ME->6.39ME-2->6.39ME-2 recovery fix->6.39ME-3->6.39ME-4->6.39ME-5->6.39ME->6.39ME-7->6.60ME-1.6

NDS Lite: Acekard2i v1.8.8        ¡¡¡CUIDEN LA ORTOGRAFÍA!!!
Sony xperia neo android 2.3.3 root
Galaxy nexus ICS 4.0.2 root
Wii negra v4.2E->HBC 1.0.8 (IOS58)+HerMes Mod (222,223,224,225,260)+D2X 7 Final (245,246,247,248,249,250)


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 DeViaNTe

Menú infinitas opciones.

Si bien, despues de terminarlo he leido y entendido el tuyo, y no es lo mismo, puedes usar un sistema parecido para lo que quieres hacer.

Fijate realmente qué fácil resulta cambiar de opciones teniendolo en tablas, que incluso puse "variables" que definen si el menú va hacia arriba, si hace ciclos... y no son más que ifs de una linea.

--- Menú de imagenes, usando tablas.
--- (copyleft) 2010 - psp.scenebeta.com
--- By: DeViaNTe
 
--- Menú simple usando imágenes a modo de "pantallas".
--- Número de opciones: Las que la RAM permita (este hm...).
 
-- Opcion por defecto, la primera.
menu_actual = 1;
 
-- Si menu_increment == 1, al presionar abajo, INCREMENTAREMOS en la tabla, y al presionar arriba DECREMENTAREMOS.
-- Si menu_increment == -1, al presionar arriba, INCREMENTAREMOS en la tabla, y al presionar abajo DECREMENTAREMOS.
-- (Sirve para elegir la dirección del menú, arriba o abajo)
menu_increment = 1;
 
-- Si menu_loop == 1, estando en la ultima opcion y avanzando una más, volverá a la inicial.
-- Si menu_loop == 0, estando en la ultima opcion y avanzando una más, se estancará en esa opción.
menu_loop = 0;
 
-- Rellenar aquí con vuestras rutas de las imágenes a utilizar para las distintas "opciones".
menu = { };                                               -- menú vacío
table.insert(menu,Image.load("ms0:/PSP/GAME/LuaPlayerHM7/menu.png")); -- Primera opción.
table.insert(menu,Image.load("ms0:/PSP/GAME/LuaPlayerHM7/tema1.png")); -- Segunda opción.
table.insert(menu,Image.load("ms0:/PSP/GAME/LuaPlayerHM7/tema2.png")); -- Tercera opción.
table.insert(menu,Image.load("ms0:/PSP/GAME/LuaPlayerHM7/tema3.png")); -- Cuarta opción.
 
acciones = { };												-- acciones para las opciones del menú
table.insert(acciones,function () dofile("script1.lua") end);	--primera opción
table.insert(acciones,function () dofile("script2.lua") end);	--segunda opción
table.insert(acciones,function () dofile("script3.lua") end);	--tercera opción
table.insert(acciones,function () dofile("script4.lua") end);	--cuarta opción
 
 
-- A partir de aquí no tocar nada, pues es el menú
--------------------------------------------------
pad = Controls.read();
oldpad = pad;
 while true do
	pad = Controls.read();
 
	-- manejar controles, hemos pulsado qué?
	if pad:down() and not oldpad:down() then
		menu_actual = menu_actual + menu_increment;	-- cambiar de opción.
		if menu_actual > table.maxn(menu) then if menu_loop > 0 then menu_actual = 1; else menu_actual = table.maxn(menu); end end
		if menu_actual < 1 then if menu_loop > 0 then menu_actual = table.maxn(menu); else menu_actual = 1; end end
	end
 
	if pad:up() and not oldpad:up() then
		menu_actual = menu_actual - menu_increment;	-- cambiar de opción.
		if menu_actual > table.maxn(menu) then if menu_loop > 0 then menu_actual = 1; else menu_actual = table.maxn(menu); end end
		if menu_actual < 1 then if menu_loop > 0 then menu_actual = table.maxn(menu); else menu_actual = 1; end end
	end
 
	-- opción cambiada. mostrar menú.
 
	screen:clear();
	screen:blit(0,0,menu[menu_actual]);
	screen.waitVblankStart();
	screen.flip();
 
	-- hemos entrado en la opción?
	if pad:cross() and not oldpad:cross() then
		acciones[menu_actual]();	-- ejecutar acción.
	end
 
	oldpad = pad;
 end

 


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es

AHHHHHHHHHHHH!!!

PADRE DEVIANTESorprendidoRisa

EDITADO: El uso abusivo de mayúsculas no está permitido. Por favor, revise las normas de la comunidad. Gracias. -Viciuz-



Imagen de Tu_yo

te recuerdo

que ers grafista y te mande uns bofetos para que me hicieras unos graficos
te los volvere a enviar

"bofetos" xD parece que le

"bofetos" xD parece que le mandas bofetazos xD

Imagen de Tu_yo

si

simplemente le mande unas imagenes simples(hechas con el paint) para que trabajara sobre ellas

se dice bocetos xD

se dice bocetos xD

Imagen de Tu_yo

con razon

me sono raro cuando lo dijo mi profe de plastica va!! XD

xDDD me  ha echo gracia que

xDDD me  ha echo gracia que dijeras eso, pensé que en otro pais se diría asi o algo.

Imagen de Tu_yo

Dios existe y eres TU

muchas gracias ahora bien
if pad:cross() and not oldpad:cross() then
acciones[menu_actual](); y aqui la opcion pero no haria simpre la misma? a vale ya lo entiendo
ejecutara segun que accion si el menu actual es 1 pues la accion 1 y asi ¿no? jeje cada vez me gusta mas esto

a y has puesto 2 veces pad=Controls.read()
ya entendi todo el codigo muchas gracias y no dudes que no te voy a dar bitos y por supuesto apareceras en los credito de mi hb GRACIAS
y no se que es lo de table.maxn


PSP Slim TA-085v2 :OFW 3.72->3.80m33->3.90m33->4.01m33->5.00m33-6+Parche 5.00m33-7+5.00prometheus-3 v4+SNDC XMB mod->6.37ME-7->6.37ME-8->6.38ME->6.38ME-2->6.3ME-3->6.39ME->6.39ME-2->6.39ME-2 recovery fix->6.39ME-3->6.39ME-4->6.39ME-5->6.39ME->6.39ME-7->6.60ME-1.6

NDS Lite: Acekard2i v1.8.8        ¡¡¡CUIDEN LA ORTOGRAFÍA!!!
Sony xperia neo android 2.3.3 root
Galaxy nexus ICS 4.0.2 root
Wii negra v4.2E->HBC 1.0.8 (IOS58)+HerMes Mod (222,223,224,225,260)+D2X 7 Final (245,246,247,248,249,250)

Imagen de unai.

¡Que pedazo de código! No

¡Que pedazo de código! No creo que lo entenderá bien...

Imagen de DeViaNTe

Explications...

a ver, el control.read de más, es para tener pad y oldpad ya iniciados antes de entrar al while, y no me salte un... "intentando comparar no se qué con nil" (oldpad valdria nil, pq no existiria hasta el final del while, por lo tanto los inicio antes ambos "por si akaso").

Las funciones que quieres que hagan cada opción se meten en la tabla acciones, yo he metido funciones directamente del estilo
function () codigo mas codigo mas codigo end

pero podrias hacer tranquilamente

funcion accion_del_boton_1_o_como_quiera_que_se_llame()
  codigo
  mas codigo
end

table.insert(acciones,accion_del_boton_1_o_como_quiera_que_se_llame);

(en el orden que corresponda, cada insert indica una accion, y se insertan en el orden de las opciones, por comodidad y para que funcione bien este menú claro).


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es

Imagen de pspgorrister

a b c, c b a, a c b,....

La complejidad de ese código crece exponencialmente, usa tablas en vez de 80 variables. Claro que al final optarás por las 80 variables... suerte, la vas a necesitar.

Un saludo.


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

U.U como te gusta urgar en la

U.U como te gusta urgar en la herida. Al final lo aré con tablas haber si dejas ya el tema...

Imagen de pspgorrister

¿LOL?

Vamos a ver que tu comentario me ha dejado "pasmao".

U.U como te gusta urgar en la herida.

¿Urgar en la herida?. ¿Perdón?, aquí nadie se estaba dirigiendo a ti

Al final lo aré con tablas haber si dejas ya el tema...

¿Pero es que piensas que yo o Deviante decimos que uséis tablas porque cobramos comisión de Tabletone S.A?. ¿Crees que yo hablo de tablas por ti?. ¿Recomiendo programar en tablas para que tú me hagas caso?. Deja de mirarte el ombligo, no voy a dejar el tema de las tablas PORQUE ES COMO SE PROGRAMA BIEN.

Para programar bien, hay que usar tablas, lo demás son chapuzas, mala programación y hacer el tonto. Y al que le sienten mal mis palabras que se aguante, pero es lo que hay. ¿Que la programación es difícil?. Pues siiiii. Como dijo Morpheo: "Bienvenido al mundo real, Neo".

Esto parece una pataleta de un niño que hace una cosa a regañadientes porque se lo dicen su papis. Usa tablas u 800 variables a mí me da igual. El cómo hacerlo bien, ya te lo han dicho, la opción de ser un buen Coder, o estancarte es tuya.

 

PD: Siento la alteración, pero es que ese comentario me ha molestado, encima que uno intenta ayudar, acaba siendo el malo de la historia. Te recuerdo que eres tú el que pide ayuda. Yo no tengo la obligación de enseñarte nada de lo que sé.


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

No queria ofenderte, pero es

No queria ofenderte, pero es que eso de "Claro que al final optarás por las 80 variables... suerte, la vas a
necesitar." Pensé que se referia a mi caso, además que os quede claro de una vez xD SE HACER UNA TABLA Y USARLA. No la uso, simplemente porque ya llevo un trozo, no tengo tiempo (ni se) de mirar las cordenadas donde debo escribir el texto. Ya te dije que la usaria en otro modo del juego para probar que tal.

Por supuesto que pido ayuda, para eso estan los foros de programació y te agradezco MUCHÍÍÍÍSIMO lo que me has ayudado, claro que no tienes porque hacerlo (aunque te animo a que sigas ayudandonos).

"Esto parece una pataleta de un niño que hace una cosa a regañadientes
porque se lo dicen su papis. Usa tablas u 800 variables a mí me da
igual. El cómo hacerlo bien, ya te lo han dicho, la opción de ser un
buen Coder, o estancarte es tuya."

Totalmente de acuerdo, pero creo que no entendistes del todo mi comentario.

Y yo creia que la frasecita iva dirigida a mi o, al menos te referias a mi caso, pido disculpas por haverte enfadado.


We're off now to seek all our fortunes to the land... of... our dreams

Imagen de Tu_yo

enm.. esto

el tema del foro lo e escrito yo (tu_yo) ese es otro que se ha metio no se porque

Imagen de Arbër

¿El malo de la peli?

¡Pero si tu eres mas bueno que el pan!

Apoyo tu comentario ya que estoy al 100% de acuerdo con el y es verdad que sin las tablas pues lejos no se llega (menos mal que yo tengo a mi profe Deviante que me ha ayudado a profundizar con el tema de las tablas que sino...).

Un saludo crack ;)


-----[[7 años en Scenebeta, con la misma ilusión que la del primer día]]----

Imagen de DeViaNTe

Man, te timan...

Revisate el contrato...
yo SI cobro por recomendar el uso de tablas...
no leíste la cláusula 3, párrafo 2 del contrato?
si es ke....

Aunke si, lo que dices es verdad, si no se usan tablas... se pueden hacer homebrews... como era la cancion de eurovision de españa? ah si... "algo xikitito"! uooo uooo uooo.... xD

Si se espera hacer algo más grande, si, las tablas optimizan bucles, pues aunke el menú k puse arriba le pusierais 150.000 millones de millones de opciones, el menú iría igual de rápido, (no creo que aguantara por la ram ... k no da pa tantas imagenes... ) pero en el hipotético caso de que sí aguantaran, yo haría un menú de 150.000 millones de millones de opciones, perdiendo el tiempo tan solo en programar las acciones de cada opción, y descargarme la imagen de internet... mientras que usando variables... DIOSSSSS mi script tendria... mmmm.... 400.000 millones de millones de lineas? cuanto tardaria en mostrar cada frame? kizas le daría hacia abajo y me diria si... como no bajes tu.... yo sigo intentando adivinar en qué opción estoy ... tanto if... xDDDDDDD


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es

Imagen de Tu_yo

y por cierto deviante

a mi tambien me vas a tener que enseñar a usr tablas por que con los tutoriale no me aclaro y me han dicho que tu eres un gran profe....


PSP Slim TA-085v2 :OFW 3.72->3.80m33->3.90m33->4.01m33->5.00m33-6+Parche 5.00m33-7+5.00prometheus-3 v4+SNDC XMB mod->6.37ME-7->6.37ME-8->6.38ME->6.38ME-2->6.3ME-3->6.39ME->6.39ME-2->6.39ME-2 recovery fix->6.39ME-3->6.39ME-4->6.39ME-5->6.39ME->6.39ME-7->6.60ME-1.6

NDS Lite: Acekard2i v1.8.8        ¡¡¡CUIDEN LA ORTOGRAFÍA!!!
Sony xperia neo android 2.3.3 root
Galaxy nexus ICS 4.0.2 root
Wii negra v4.2E->HBC 1.0.8 (IOS58)+HerMes Mod (222,223,224,225,260)+D2X 7 Final (245,246,247,248,249,250)

Imagen de Arbër

En Scenebeta

En los tutoriales estan explicados bastante bien, lo que pasa que claro, son algo complicadas pero estar están bien explicadas para familiarizarte un poquillo con el tema. Leetelos despacio y con cuidado asegurandote de que entiendes todo lo que explica el tuto, seguro que al final lo entiendes.

Un saludo.


-----[[7 años en Scenebeta, con la misma ilusión que la del primer día]]----

Imagen de Tu_yo

tu sabes como podria hacerlo?

me estoy volviendo locoooooooooooooooooo

Imagen de DeViaNTe

excepción

voy a hacer una excepción y os voy a poner el código, usando TABLAS.
A partir de ahora, por favor, acostumbraros a usar este tipo de métodos al hacer menús o pantallas de este tipo, o moriréis con las variables al usar un menú algo cargadito... xD

dadme un min y actualizo el post


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es

Imagen de Tu_yo

Muchisiiiiiiiiiiiiiiiiiimas gracias

llebo dias intentandolo y no lo consigo grasias (es broma no seseo)

Imagen de DeViaNTe

Miedo a las tablas NO!

Pues eso, kitaros el miedo a las tablas, pues podéis observar que meto tranquilamente imágenes, funciones... lo que se quiera. Podéis meter lo que querais. Es el punto más fuerte de lua, sus tablas y sus metatablas, que pueden llegar a ser muy potentes, si no les tenéis miedo claro. xD


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es

Imagen de Tu_yo

use tablas

pero cuando dejaba de pulsar abajo por ejemplo la imagen tema2b e dejaba de mostrar y volvia a tema2 y tampoco consegui que al pulsar se guardara en la tabla ¿sabes como? como remsumiria muchisimo el codigo


PSP Slim TA-085v2 :OFW 3.72->3.80m33->3.90m33->4.01m33->5.00m33-6+Parche 5.00m33-7+5.00prometheus-3 v4+SNDC XMB mod->6.37ME-7->6.37ME-8->6.38ME->6.38ME-2->6.3ME-3->6.39ME->6.39ME-2->6.39ME-2 recovery fix->6.39ME-3->6.39ME-4->6.39ME-5->6.39ME->6.39ME-7->6.60ME-1.6

NDS Lite: Acekard2i v1.8.8        ¡¡¡CUIDEN LA ORTOGRAFÍA!!!
Sony xperia neo android 2.3.3 root
Galaxy nexus ICS 4.0.2 root
Wii negra v4.2E->HBC 1.0.8 (IOS58)+HerMes Mod (222,223,224,225,260)+D2X 7 Final (245,246,247,248,249,250)

Imagen de pspgorrister

pero cuando dejaba de pulsar

pero cuando dejaba de pulsar abajo por ejemplo la imagen tema2b...

No has entendido lo de las tablas. Bueno, ya lo he puesto alguna vez por ahí, cuestión de buscar, no tengo ganas de dar "la charla" otra vez.

Suerte.


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

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.