Anuncios Google

Ayuda no funciona mi code y estoy seguro que lo escribi bien D:

Bien, tengo este code:

function sniveles()
astro=1;
 
while true do controls.read();
if astro==1 then image.blit(0,0,tablamenu[8]) end
if astro==2 then image.blit(0,0,tablamenu[9]) end
if astro==3 then image.blit(0,0,tablamenu[10]) end
if astro==4 then image.blit(0,0,tablamenu[11]) end
if astro==5 then image.blit(0,0,tablamenu[12]) end
if astro==6 then image.blit(0,0,tablamenu[13]) end
if astro==7 then image.blit(0,0,tablamenu[14]) end
if astro==8 then image.blit(0,0,tablamenu[15]) end
if astro==9 then image.blit(0,0,tablamenu[16]) end
if astro==10 then image.blit(0,0,tablamenu[17]) end
if astro==11 then image.blit(0,0,tablamenu[18]) end
if astro==12 then image.blit(0,0,tablamenu[19]) end
if astro==13 then image.blit(0,0,tablamenu[20]) end
if astro==14 then image.blit(0,0,tablamenu[21]) end
if astro==15 then image.blit(0,0,tablamenu[22]) end
if controls.press("left") then sound.play(sonido1,1) astro=astro-1 elseif controls.press("right") then sound.play(sonido1,1) astro=astro+1 end
if astro<15 then astro=1 elseif astro>15 then astro=1 end
screen.flip();
end
end; 

Y tablamenu es un for, está asi..

tablamenu={};
for var=1,22 do
tablamenu[var]=image.load("Imagenes/M"..var..".png");
end

He echo lo mismo con otras funciones y si funciona, porque pasara?

Y el error esque presiono derecha e izquiera y se queda la imagen primera(como si astro no cambiara), pero lo raro esque si suena el sonido D:


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 Chimecho

reducción de code...

Si usas arrays, facílmente puedes hacer que esto:

if astro==1 then image.blit(0,0,tablamenu[8]) end
if astro==2 then image.blit(0,0,tablamenu[9]) end
if astro==3 then image.blit(0,0,tablamenu[10]) end
if astro==4 then image.blit(0,0,tablamenu[11]) end
if astro==5 then image.blit(0,0,tablamenu[12]) end
if astro==6 then image.blit(0,0,tablamenu[13]) end
if astro==7 then image.blit(0,0,tablamenu[14]) end
if astro==8 then image.blit(0,0,tablamenu[15]) end
if astro==9 then image.blit(0,0,tablamenu[16]) end
if astro==10 then image.blit(0,0,tablamenu[17]) end
if astro==11 then image.blit(0,0,tablamenu[18]) end
if astro==12 then image.blit(0,0,tablamenu[19]) end
if astro==13 then image.blit(0,0,tablamenu[20]) end
if astro==14 then image.blit(0,0,tablamenu[21]) end
if astro==15 then image.blit(0,0,tablamenu[22]) end

Pase a esto:

if astro>=1 && astro<=15 then image.blit(0,0,tablamenu[astro+7]) end

Saludos! xD



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Imagen de trom_us

nota

if astro<15 then astro=1 elseif astro>15 then astro=1 end

el codigo esta mal aca, ya que siempre sera menor que 15 y sera a 1, y nunca mayor a 15, y sera a 1


y lo que dices...
if astro>=1 && astro<=15 then image.blit(0,0,tablamenu[astro+7]) end

es mas simple, si nunca sera menor a 1 o mayor a 15, seria mejor asi...

solo esto--- > image.blit(0,0,tablamenu[astro+7])

eso sustituye tu linea, o las 15 lineas anteriores...

Imagen de Chimecho

sep xD

Tienes toda la razón, el problema es que solo vi el chorro de ifs iguales y los agrupé, el resto ni lo leí =(

Imagen de barney77

Pero eso es de los niveles,

Pero eso es de los niveles, osea que a cada if necesito otro if que cuando presione X arrance el nivel1,2,3....

Probare el code, una duda pra que son estos:

&& ?


Significan And?
Imagen de Chimecho

Oops

Es lo que pasa cuando mezclas lenguajes :S

En realidad allí iba "and" tengo el "&&" pegado de Java xD

Imagen de cam-maker

eso me paso a mi xD

eso me paso a mi xD

¿Pero en lua && no es

¿Pero en lua && no es operador binario? (o como se llame)

Imagen de Chimecho

uno solo....

uno solo si es operador binario "a & b" busca mi tuto de operaciones...

Alguna parte en especial da

Alguna parte en especial da error? Se cuelga? pantalla negra? El error (de programación o lógico) debe estar en el resto del code, deberías revisarlo.

PD. La serie de if's que tienes arriba se puede compactar con un for ;)

Imagen de barney77

No, la verdad esque no.. solo

No, la verdad esque no.. solo se queda en astro=1, pero si suena el sonido.

Y lo de omitir if´s con for, creo saber como voy ha hacerlo, ahora lo hago como pienso, sualquier duda te aviso.

EDITO: El error parece estar en esta linea:

if astro<15 then astro=1 elseif astro>15 then astro=1 end

La quite y ahora va perfecto, solo que esa linea me funciona perfectamente en las demas funciones ...

Imagen de trom_us

imposible

eso es imposible, ya que tu mismo lo dices ahi, si es diferente de 15, dame 1 y entus otras funciones que dices que te funciona, dudo tengas esa misma comparacion si esperabas un 2,3,4,5,6,7...

Te aseguro que no la tienes

Te aseguro que no la tienes bien, esa condición dice que si astro es menor que 15, astro será 1. Si astro mayor que 15, astro será 1 también xD

Imagen de barney77

Sí, ya me di cuenta xD, ya

Sí, ya me di cuenta xD, ya está solucionado, ya puse la condicion bien..

Gracias por abrirme los ojos, ando medio tumbado el dia de hoy, será mejor que descanse un poco.

Salu2.

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.