Anuncios Google

¿Cuál es el error en mi codigo?(duda nueva)

Miren,quiero que se mueva el objeto bola1, que es una imagen de 50x50, pero que se mueva al yo presionar arriba y abajo.

Me marca el error de :

linea13 loop in gettable.

aqui mi code:

--Nivel 1
bola1 = image.load("bolas/bola1.png")
porteria = image.load("porterias/porteria1.png")
 
while true do
controls.read()
porteria:blit(0,136)
bola1:blit(430,136)
if controls.press("up") then
	bola1.y=bola1.y-1
end
if controls.press("down") then
	bola1.y=bola1.y+1
end
screen.flip()
end

SOLUCIONADO


Ahora otra duda:


Bueno ahora eh terminado por fin los movimientos y eso del nivel1,
solo que algo curioso, veran que me faltaba un end para cerrar el while y
obviamente me marcaba error, le puse el end, pero ahora no me carga el
archivo, solo presiono x, y, nomas nada, se queda asi y no carga nada.

 

Aqui el code del script Principal:

nivel1 = image.load("Menu/nivel1.png")
nivel2 = image.load("Menu/nivel2.png")
nivel3 = image.load("Menu/nivel3.png")
nivel4 = image.load("Menu/nivel4.png")
astro = 1
 
while true do
controls.read()
nivel1:blit(0,0)
 
if astro == 1 then
nivel1:blit(0,0)
if controls.press("cross") then
	dofile("niveles/nivel1.lua")
end
end
 
if astro == 2 then
nivel2:blit(0,0)
end
 
if astro == 3 then
nivel3:blit(0,0)
end
 
if astro == 4 then
nivel4:blit(0,0)
end
 
if controls.press("up") then
	astro = astro-1
end
 
if controls.press("down") then
	astro = astro+1
end
 
if astro <1 then
	astro = 4
end
 
if astro > 4 then
	astro = 1
end
 
screen.flip()
end

Aquí el code del Nivel1:

--Nivel 1
bola1= {}
bola1.img = image.load("bolas/bola1.png")
bola1.x = 430
bola1.y = 136
porteria= {}
porteria.img = image.load("porterias/porteria1.png")
porteria.x1 = 0
porteria.y1 = 136
porteria.y = 0
porteria.x = 0
porteria.x2 = 0
porteria.y2 = 0
dir = "derecha"
velocidad = 8
function move(porteria)
if porteria.dir=="derecha" then
	porteria.x=porteria.x+porteria.velocidad
end
if porteria.dir == "derecha" and porteria.x>=porteria.x2+1 then
end
 
while true do
controls.read()
porteria.img:blit(porteria.x,porteria.y)
bola1.img:blit(bola1.x,bola1.y)
if controls.up() then
	bola1.y=bola1.y-1
end
if controls.down() then
	bola1.y=bola1.y+1
end
move(porteria)
screen.flip()
end
end

Es muy raro, solo parpadea un segundo el foco de la memoria(el que parpadea en naranja) y nada se queda así, y antes no pasaba eso, me llega a pensar,sera por la RAM de mi psp?

Es una fat 1000.


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.

Si quieres hacerlo mas

Si quieres hacerlo mas compacto:
bola1={img = image.load("bolas/bola1.png"),x=430,y=136}

Te falta la tabla bola1,

Te falta la tabla bola1, debes definirla primero arriba, fuera del while

bola1 = { x = 0, y = 0 }
 
-- while, y resto del código.

Otra cosa, si tu tabla se va llamar bola1, ponle otro nombre a tu imagen, ya que al llamarse igual te va causar más errores.

Imagen de barney77

Gracias,

Gracias, de todas formas ya lo arregle, quedo así:

--Nivel 1
bola1 = image.load("bolas/bola1.png")
porteria = image.load("porterias/porteria1.png")
bola1= {}
bola1.img = image.load("bolas/bola1.png")
bola1.x = 430
bola1.y = 136
 
while true do
controls.read()
porteria:blit(0,136)
bola1.img:blit(bola1.x,bola1.y)
if controls.up() then
	bola1.y=bola1.y-1
end
if controls.down() then
	bola1.y=bola1.y+1
end
screen.flip()
end

Estás cargando la imagen dos

Estás cargando la imagen dos veces, y sólo la usas una vez. Elimina la línea 2, seguirá funcionando igual, pero ya no usará ram innecesariamente ;)

Imagen de barney77

Sí,

Sí, ya lo hise, gracias Rober ;).

Imagen de iRVing_Prog

no existe el objeto ni la tabla

 

;:if controls.up() then
	bola1.y=bola1.y-1
end
if controls.down() then
	bola1.y=bola1.y+1
end

La posicion en Y o X de un objeto no existe por defecto uno las tiene que crear, lo que estas tratando de hacer es sumarle 1 o restarle 1 a una imagen y por si fuera poco tratandola como tabla

bola1 = image.load....

bola1.x = bola1.x + 1

tendrias que hacer una tabla

bola1 = {}
 
bola1.img = image.load...
 
bola1.x = 20
 
bola1.y = 20
 
--para imprimir seria:
 
bola1.img:blit(bola1.x,bola1.y)

:)


 

Imagen de barney77

Gracias

Gracias tío sos un crack, me ha servido.

Otra cosa, la porteria, quiero que se mueva sola,  y, poder modificar la velocidad.

Imagen de iRVing_Prog

correo

mandame tu MSN por MP para ayudarte :)

Imagen de barney77

Jajaja

Jajaja, ya no nau me dio un code, me ha explicado como, pero gracias, de todos modos cuando tenga duda, te lo envio sale?

Gracias man.

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.