Anuncios Google

mi primer juego en lua

hola, tengo 15 años y esta tarde he empezado un juego de naves aprovechando los tutoriales de beta para familiarizarme un poco con el lenguaje ya que nunca habia programado nada, os dejo aqui el codigo y os pido por favor que comenteis, ya sean sugerencias, criticas...

 

--juego naves

--colores
verde = Color.new(0,255,0)
blanco = Color.new(255,255,255)
--imagenes
fondo = Image.load("imagenes/fondo.png")
prota = Image.load("imagenes/nave.png")
malo = Image.load("imagenes/malo.png")
malo2 = Image.load("imagenes/malo2.png")
laser = Image.load("imagenes/laser.png")
humo = Image.load("imagenes/humo.png")
--variables
--menu
--posicion prota
x = 10
y = 120
--posicion malo
c = 410
d = 150
--posicion malo2
e = 500
f = 25
--laser
g = 600
h = 600
--fondo
fondox = 0
fondoy = 0
fondo2x = 490
fondo2y = 0
--vida prota
vida = 100
--vida malos
vidamalo1 = 400
vidamalo2 = 500
 
 
while true do
screen:clear()
pad = Controls.read()
screen:blit(fondox,fondoy,fondo)
screen:blit(fondo2x,fondo2y,fondo)
screen:blit(c,d,malo)
screen:print(15,15,"vida",verde)
screen:print(15,30,vida,blanco)
screen:blit(x,y,prota)
screen:blit(e,f,malo2)
--controles
if pad:left() then
x = x - 4
fondox = fondox + 10
end
if pad:right() then
x = x + 4
fondox = fondox - 10
end
if pad:up() then
y = y - 4
end
if pad:down() then
y = y + 4
end
if pad:r() then
screen:blit(x + g,y + h,laser)
g = 130
h = 40
end
if x <= c + 5 and x >= c - 5  and y <= d + 7 and y >= d - 75 then
vida = vida - 15
end
if c <= x + g + 460 and c >= x + g - 10  and d <= y + h + 7 and d >= y + h - 75 then
vidamalo1 = vidamalo1 - 1
end
if x <= e + 5 and x >= e - 5  and y <= f + 7 and y >= f - 75 then
vida = vida - 25
end
if e <= x + g + 460 and e >= x + g - 10  and f <= y + h + 7 and f >= y + h - 75 then
vidamalo2 = vidamalo2 - 1
end
if vidamalo1 <= 0 and vidamalo2 <= 0 then
screen:print(180,130,"has ganado",verde)
end
--movimiento malo
if c <= -200 then
c = c + 650
end
c = c - 6
if d == 147 then d = d + 3 else
d = d - 3
end
--movimiento malo 2
e = e - 10
if f == 20 then f = f + 5 else
f = f - 5
end
if e <= -200 then
e = e + 650
end
--movimiento fondo
fondox = fondox - 15
fondo2x = fondox + 472
if fondox <= -472 then
fondox = fondox + 472
end
--vida
if vida <= 0 then
screen:print(180,130,"has perdido",verde)
end
--vida malo1
if vidamalo1 <= 0 then
malo = fondo
c = c + 100
end
--vida malo2
if vidamalo2 <= 0 then
malo2 = fondo
e = e + 100
end
--bucle infinito
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 adrian-SAYA

pùes

pues que te puedo decir para  ser tu primera vez esta muy bien...

una sugerencia .. podrias ordenar tu codigo en funciones

colocando asi solamente en el bucle funciones ....


SAYA...

Imagen de P22

Como te acaban de decir, pon

Como te acaban de decir, pon arrays(tablas) así

malo = {}

 malo[1] = { x = tal, y = tal, vida tal....}

 malo[2] = { x = tal............}

Espero explicarme. Luego para usarlas:

malo[2].x

Así el código sale más estructurado, al declarar menos variables más rapido y más ordenado.

Y cuentanos un poco más explicado para que sepamos un poco.

Cuando lo acabes avísame y te hago la noticia.

Saludos


¡Iníciate en Linux fácilmente! Sólo entra aquí y comprueba que distribución se adapta mejor a tí.

Mi review: iPod Touch 4G

Me falto explicar como se

Me falto explicar como se hacian :P

Mi sugerencia es k a la hora

Mi sugerencia es k a la hora de declarar variables uses arrays, en vez de declararlas asi 1 por 1.

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.