Anuncios Google

Error con oldpad = pad

La verdad que esta duda no es una duda, sino un fantasma que aparece y desaparece en mi Lua Player, es decir, no siempre me da ese error pero cada cierto tiempo en el mismo codigo me lanza un error que aun no entiendo ni porque ni como me lo da cuando jamas me ha pasado esto.

Este es el codigo conflictivo:

function movimiento_jugador()

if pad:right() and jugador.x < 454 then
estado = personajeder[fotograma]
jugador.x = jugador.x + 3
fotograma = fotograma + 1

elseif pad:left() and jugador.x > 0 then
estado = personajeizq[fotograma]
jugador.x = jugador.x - 3
fotograma = fotograma + 1

elseif oldpad:right() then <------- LINEA CONFLICTIVA
estado = parado1

elseif oldpad:left() then
estado = parado2

end

if fotograma == 9 then
fotograma = 1
end

end

--bucle principal del programa
while true do
screen:clear()
pad = Controls.read()

screen:blit(jugador.x,jugador.y,estado)
screen:blit(pelota.x,pelota.y,pelotaroja[1])

screen:print(5,5,"Vidas restantes: "..vidas,blanco)

movimiento_jugador()
movimiento_pelotas()

screen.flip()
screen.waitVblankStart()

if pad:start() then
break
end
oldpad = pad
end

Por encima de la funcion movimiento_jugador solo hay varios arrays, colores y las variables de turno, por eso los omito.
Cuando ejecuto ese codigo, la mitad de las veces va genial, ahora bien, la otra mitad de las veces me dice que la variable oldpad es "nil value" (la linea conflictiva) y por tanto no ejecuta el codigo, pero que yo sepa no hago na de na "ilegal", o eso creo. Por eso recurro a vosotros y a vuestra sabiduria, seguro que Pucelano me mata y me dice que vaya chorrada de duda, y la verdad lo es, pero no se porque carajo pasa esto.

Espero esas respuestas como agua de mayo!!!!!
Saludos!!!!!!!!


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 joselopez32

Debes...

Debes definir la variable de "elseif oldpad:rigth() then"... Si no la defines te saldran errores en tu juego. Para que quieres usar la variable "elseif oldpad:right()"??? Es que segun el codigo que has puesto ahi no viene nada despues del then que va despues de right... Fijate en que linea te sale el error y ponlo por aqui

Imagen de Daggoth

Ya esta todo

Ya esta todo solucionado.

Despues del then si va codigo, lo que pasa que para abreviar no lo puse aqui, y por otro lao, la variable oldpad si la tengo definida en su sitio, por eso os pedia yuda porque era muy raro que me diera error de una variable que SI esta definida.

Pero como ya he dicho, esta todo solucionado, me ha costado, pero ya esta todo perfecto.

En poco tiempo os subire el juego que estoy haciendo.

Nosa vemos qiyo!!!!!!!!

Imagen de joselopez32

Me alegro

Me alegro de que ya lo tengas todo solucionado!!! haber cuando nos subes tu juego!!! Si necesitas alguna otra ayuda pasate por los foros y pregunta... Nos vemos tio

Imagen de Daggoth

JEJEJE, lo que decis es

JEJEJE, lo que decis es cierto pero es que la pagina no me pone el simbolo que va despues de jugador.x, pero ese no es problema.

El problema viene en la parte siguiente de codigo:

if oldpad:right() then
.....
end

El error viene definido por la variable oldpad, que me dice que "Attemp to global index 'oldpad' (a nil value)". Pero lo mas gracioso de todo es que si inicio el index.lua manteniendo pulsado el boton de derecha o izquierda hasta que salte el juego no pasa na de na, no me da el error, pero si lo hago con el boton circulo (como se suele hacer desde el lowser) entonces hay veces que si me da el error y no se porque.

Saludos a los dos!!!!!

Imagen de pucelano

Ese error te dice que no

Ese error te dice que no tienes definida la variable oldpad. Debes definir esa variable antes de tratar de hacer referencia a ella.

Saludos


 

Descargar Homebrew de BETA, gratis. Visualizar un tutorial, gratis. Iniciarse en la programacion en español, gratis. Colaborar a que la scene PSP en español crezca, no tiene precio.


Descargar Homebrew de BETA, gratis. Visualizar un tutorial, gratis. Iniciarse en la programacion en español, gratis. Colaborar a que la scene PSP en español crezca, no tiene precio.

if pad:right() and

if pad:right() and jugador.x 0 then

 

no deberia ser?

if pad:right() and jugador.x = 0 then

como no pongas los valores del principio o como lo llameis vosotros....

Imagen de pucelano

Opino lo mismo que N2eiDer.

Opino lo mismo que N2eiDer. De todas formas, dinos exactamente que mensaje de error te sale, y en que linea.


Descargar Homebrew de BETA, gratis. Visualizar un tutorial, gratis. Iniciarse en la programacion en español, gratis. Colaborar a que la scene PSP en español crezca, no tiene precio.


Descargar Homebrew de BETA, gratis. Visualizar un tutorial, gratis. Iniciarse en la programacion en español, gratis. Colaborar a que la scene PSP en español crezca, no tiene precio.

Mira, quiza tenga que ver el

Mira, quiza tenga que ver el codigo que usaste pues vi que tienes algunos errores por ahi, checa la version de lua player que traes pues los mas recientes para funcionar te piden un codigo mas ordenado.

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.