Anuncios Google

Ayuda Lua

Buenas , tengo un problema con un codigo y es que quiero mover una mira por un fondo. Lo he ''conseguido'' pero me va a tirones. Os dejo el codigo:

--prueba

fondo = Image.load("fondo.png")
mira = Image.load("mira.png")

anchoPantalla = 480 - mira:width()
altoPantalla = 272 - mira:width()

Mira = {}
Mira[1] = { x = 100, y = 100 }

while true do

pad = Controls.read()
screen:clear()

for a = 0, 14 do
for b = 0,8 do
screen:blit(0,0,fondo)
end
end
screen:blit(Mira[1].x,Mira[1].y,mira)

if pad:left() and Mira[1].x > 0 then
Mira[1].x = Mira[1].x - 50
end

if pad:right() and Mira[1].x < anchoPantalla then
Mira[1].x = Mira[1].x + 50
end

if pad:up() and Mira[1].y > 0 then
Mira[1].y = Mira[1].y - 50
end

if pad:down() and Mira[1].y < altoPantalla then
Mira[1].y = Mira[1].y + 50
end

screen.flip()
screen.waitVblankStart()
end



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 RuBiTo96

No a ver , yo tengo ya mi

No a ver , yo tengo ya mi imagen de fondo ( no es hierba ) y la mirilla, entonces cambio eso que dijiste xerpi?

Si.

Si.

Imagen de RuBiTo96

Muchas gracias ya funciona

Muchas gracias ya funciona correctamente ^^

Si por aquellas cosas lo

Si por aquellas cosas lo quieres en LuaDEV:

fondo = image.load("fondo.png")
mira = image.load("mira.png")
 
anchoPantalla = 480 - mira:width()
altoPantalla = 272 - mira:width()
 
Mira = {}
Mira[1] = { x = 100, y = 100 }
 
while true do
controls.read()
fondo:blit(0,0)
mira:blit(Mira[1].x,Mira[1].y)
 
if controls.left() and Mira[1].x > 0 then
Mira[1].x = Mira[1].x - 55
end
if controls.right() and Mira[1].x < anchoPantalla then
Mira[1].x = Mira[1].x + 50
end
if controls.up() and Mira[1].y > 0 then
Mira[1].y = Mira[1].y - 50
end
if controls.down() and Mira[1].y < altoPantalla then
Mira[1].y = Mira[1].y + 50
end
 
screen.flip()
end

Solo cambia el  - 50 y el  +

Solo cambia el  - 50 y el  + 50  por -5 y +5.

 

EDITO: WTF! Que significa eso:?

for a = 0, 14 do

for b = 0,8 do

screen:blit(0,0,fondo)

end

end

Quítalo no sirve para nada, solo pon screen:blit(0,0,fondo)

Imagen de Dioni0396

Si le sirve

es que la imagen hierba solo mide 32x32 y lo que necesita es ponerlo a pantalla completa, por eso lo hace, pero no ha colocado bien el screen:blit

Fuaa eso es perder el tiempo,

Fuaa eso es perder el tiempo, que coja cualquier programa de edición de imagen y que haga directamente el campo, ese código ralentizará muchísimo el bucle.

Imagen de Dioni0396

ya

Ya....

Imagen de RuBiTo96

Lua hm, lo que quiero es que

Lua hm, lo que quiero es que se mueva. Lo que hace es que por ejemplo pulso la flecha derecha y al cabo del rato se desplaza.

Imagen de Dioni0396

yo pondria

esto

function FondoHierba()
for a = 0, 14 do
for b = 0,8 do
screen:blit(0,0,fondo)
end
end
while true do
FondoHierba()
--Aqui continuario tu codigo

fuera del bucle while true do y lo llamaria en una funcion

 

Imagen de Dioni0396

Que interprete usas?

lua hm o lua dev?

y que es lo que quieres hacer? que se mueva mas rapido?

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.