Anuncios Google

Ayuda LUA

estoy iniciandome en esto de la programacion y
voy a enpezar el 6 tutorial imagenes, pero en el tutorial 5 hice todo
lo q dice pero a mi manera pero no me salio nada d nada si alguien me
puede ayudar y dar consejos los aplicare. gracias.

codigo:

azul = Color.new(0,0,255)
rojo = Color.new(255,0,0)
verde = Color.new(0,255,0)
oldpad = Controls.read()
EnemigoActual = 1
JugadorActual = 1

Enemigo = {}
Enemigo[1] = { arma = "pistola", tipo = "guerrero", salud = 100}
Enemigo[2] = { arma = "pistola", tipo = "guerrero", salud = 100}

Jugador = {}
Jugador[1] = { arma = "metralladora", tipo = "soldado", salud = 100}
Jugador[2] = { arma = "metralladora", tipo = "soldado", salud = 100}

while true do
screen:clear()
pad = Controls.read()

screen:print(5,10, "Enemigo:  " .. Enemigo[EnemigoActual].arma,rojo)
screen:print(5,20, "Enemigo:  " .. Enemigo[EnemigoActual].tipo,rojo)
screen:print(5,30, "Enemigo:  " .. Enemigo[EnemigoActual].salud,rojo)
screen:print(250,10, "Jugador:  " .. Jugador[JugadorActual].arma,azul)
screen:print(250,20, "Jugador:  " .. Jugador[JugadorActual].tipo,azul)
screen:print(250,30, "Jugador:  " .. Jugador[JugadorActual].salud,azul)
if Jugador[JugadorActual].salud == 0 JugadorActual <= 1 then JugadorActual = JugadorActual + 1
end
if Enemigo[EnemigoActual].salud == 0 EnemigActual <= 1 then EnemigoActual = EnemigoActual + 1
end
if pad:cross() and oldpad:cross() ~= pad:cross and Jugador[JugadorActual].salud < 0 then
Jugador[JugadorActual].salud = Jugador[JugadorActual].salud - 3
end
if pad:triangle() and oldpad:triangle() ~= pad:triangle and Enemigo[EnemigoActual].salud < 0 then
Enemigo[EnemigoActual].salud = Enemigo[EnemigoActual].salud - 3
end
if EnemigoActual == 2 and Enemigo[EnemigoActual].salud == 0 then
screen:print(100,100, "Todos los Enemigos estan Muertos",verde)
end
if JugadorActual == 2 and Jugador[JugadorActual].salud == 0 then
screen:print(100,200, "Has perdido te han matado",verde)
end

screen.flip()
screen.waitVblankStart()
oldpad = pad
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 P22

No comprendo

IndecisoNo comprendo

Imagen de P22

No estoy seguro, pero

No estoy seguro, pero diría, qu va cada una en cada buffer. Pues lua, tiene dos buffer, uno , la pantalla, y otro, lo que no se ve. Entonces, mi opinion, Los dos puntos son de la pantalla y el punto del otro.

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

Imagen de pspgorrister

Pregunta

Qué diferencia hay en usar los 2 puntos y el punto?

screen:print(100,200, "Has perdido te han matado",verde)
screen.waitVblankStart()


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Imagen de ZYX3D

Una muy curiosa

Cuando utilizas los dos puntos, el objeto sobre el que invocas el método se pasa automáticamente como primer parámetro (así que en realidad, el primer elemento entre paréntesis es el segundo parámetro, tal cual se lee desde el cuerpo de la función).

En cambio, cuando utilizas sólo el punto y no los dos puntos, no se pasa ningún parámetro automáticamente.

Así pues, los siguientes códigos son equivalentes:

miCadena="Hola";
miOtraCadena=", mundo cruel";
--aquí empiezan las equivalencias...
longMiCadena=miCadena:len();
longMiCadena=string.len(miCadena);
--y lo más diver de todo:
longMiCadena=miOtraCadena.len(miCadena);


Strength is irrelevant. Resistance is future. We wish to improve ourselves.

La fuerza es irrelevante. La resistencia es futuro. Queremos mejorarnos.

Imagen de pspgorrister

ahhh

Sí es curioso sí. Sonrisa. Gracias por la aclaración.

Imagen de P22

El screen.flip ha de ir

El screen.flip ha de ir entre screen.waitVblankStart y end

Yo siempre lo he puesto el

Yo siempre lo he puesto el screen.flip() antes, qual es la diferencia? :$

PD: en tu firmas stas usando BBcodes y no se ve :S

Habia varios errores, aqui

Habia varios errores, aqui te dejo el codigo corregido:

azul = Color.new(0,0,255)
rojo = Color.new(255,0,0)
verde = Color.new(0,255,0)
oldpad = Controls.read()
EnemigoActual = 1
JugadorActual = 1
 
Enemigo = {}
Enemigo[1] = { arma = "pistola", tipo = "guerrero", salud = 100}
Enemigo[2] = { arma = "pistola", tipo = "guerrero", salud = 100}
 
Jugador = {}
Jugador[1] = { arma = "metralladora", tipo = "soldado", salud = 100}
Jugador[2] = { arma = "metralladora", tipo = "soldado", salud = 100}
 
 
while true do
 
screen:clear()
pad = Controls.read()
 
screen:print(5,10, "Enemigo:  " .. Enemigo[EnemigoActual].arma,rojo)
screen:print(5,20, "Enemigo:  " .. Enemigo[EnemigoActual].tipo,rojo)
screen:print(5,30, "Enemigo:  " .. Enemigo[EnemigoActual].salud,rojo)
screen:print(250,10, "Jugador:  " .. Jugador[JugadorActual].arma,azul)
screen:print(250,20, "Jugador:  " .. Jugador[JugadorActual].tipo,azul)
screen:print(250,30, "Jugador:  " .. Jugador[JugadorActual].salud,azul)
 
pad = Controls.read()
if Jugador[JugadorActual].salud == 0 and JugadorActual <= 1 then JugadorActual = JugadorActual + 1
end
if Enemigo[EnemigoActual].salud == 0 and EnemigActual <= 1 then EnemigoActual = EnemigoActual + 1
end
if pad:cross() and oldpad:cross() ~= pad:cross() and Jugador[JugadorActual].salud < 0 then
Jugador[JugadorActual].salud = Jugador[JugadorActual].salud - 3
end
if pad:triangle() and oldpad:triangle() ~= pad:triangle() and Enemigo[EnemigoActual].salud < 0 then
Enemigo[EnemigoActual].salud = Enemigo[EnemigoActual].salud - 3
end
if EnemigoActual == 2 and Enemigo[EnemigoActual].salud == 0 then
screen:print(100,100, "Todos los Enemigos estan Muertos",verde)
end
if JugadorActual == 2 and Jugador[JugadorActual].salud == 0 then
screen:print(100,200, "Has perdido te han matado",verde)
end
screen.flip()
screen.waitVblankStart()
oldpad = pad
end

 

El primer error era que no habias puesto pad = Controls.read() por lo tanto el programa no sabia que queria decir pad:triangle() ni nada de eso.

El segundo error era que te faltaba poner and en estas dos linias:

if Jugador[JugadorActual].salud == 0 and JugadorActual <= 1 then JugadorActual = JugadorActual + 1 end
if Enemigo[EnemigoActual].salud == 0 and EnemigActual <= 1 then EnemigoActual = EnemigoActual + 1
end

Y el tercero es que te habias olvidado de poner () en pad:cross() y pad:triangle()

 

Creo ke lo demas estaba bien, a mi me ha funcionado, lo e porbado con el luaplayer de windows

PD: has de hacer caso a los errores que te da el luaplayer y corregirlos

muchas

gracias amigo por la ayuda, pero como veo los errores si la ventana se sierra tan rapido.

Imagen de ZYX3D

Si usas el de Windows...

...y lo lanzas con un archivo .cmd, asegúrate de escribir "pause" (sin comillas) después de la ruta del player.

Ej:

C:\LUA\Player\luaplayer.exe miprograma.lua

pause

...cambiando el directorio del player y programa por el que uses, claro.


Strength is irrelevant. Resistance is future. We wish to improve ourselves.

La fuerza es irrelevante. La resistencia es futuro. Queremos mejorarnos.

muchas gracias

muchas gracias se quedo la ventana.

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.