Anuncios Google

Disparar, pregunta

Bien, he completado el tutprial de salto muy real, pero ahora, quiero saber, como poder hacer que pueda disparar? he intentado de varias maneras pero no he podido (no puedo subir el código porque no estoy en mi PC), si alguien me puede ayudar por favor

EDIT: Aquí está el código:

--Crear colores
verde = Color.new(0,255,0)
blanco = Color.new(255,255,255)
blue = Color.new(0,0,255)
amarillo = Color.new(255,255,-255)
azul = Color.new(150,150,255)
rojo = Color.new(255,0,0)

fondo = Image.createEmpty(480,272)
fondo:clear(azul)

jugador1 = Image.createEmpty(32,32)
jugador1:clear(blanco)

piso = Image.createEmpty(480,10)
piso:clear(verde)

bala = Image.createEmpty(4,4)
bala:clear(rojo)

oldpad = Controls.read()
balaActual = 0
direccion = "derecha"

jugador = {}
gravedad = 230
vertical = 230
horizontal = 50
velocidad = 10
estado = "piso"

Personaje = {}
Personaje[1] = { x = 230, y = 230 }

infoBala = {}
for a = 1,5 do
infoBala[a] = { imagen = bala , disparando = false, direccion = "derecha", x = Personaje[1].x + 32,
y = Personaje[1].y + 16 }
end

function configBala()
end

if balaActual < 5 then
balaActual = balaActual + 1
else
balaActual = 1
end
if direccion == "izquierda" then
infoBala[balaActual].x = Personaje[1].x
infoBala[balaActual].y = Personaje[1].y + 16
end
if direccion == "derecha" then
infoBala[balaActual].x = Personaje[1].x + 32
infoBala[balaActual].y = Personaje[1].y + 16
end
if direccion == "arriba" then
infoBala[balaActual].x = Personaje[1].x + 16
infoBala[balaActual].y = Personaje[1].y
end
if direccion == "abajo" then
infoBala[balaActual].x = Personaje[1].x + 16
infoBala[balaActual].y = Personaje[1].y + 32
end
infoBala[balaActual].direccion = direccion
infoBala[balaActual].disparando = true

function disparoBala()
end
for i = 1,5 do
if infoBala[i].disparando == true then
if infoBala[i].direccion == "derecha" then infoBala[i].x = infoBala[i].x + 10 end
if infoBala[i].direccion == "izquierda" then infoBala[i].x = infoBala[i].x - 10 end
if infoBala[i].direccion == "arriba" then infoBala[i].y = infoBala[i].y - 10 end
if infoBala[i].direccion == "abajo" then infoBala[i].y = infoBala[i].y + 10 end
end
if infoBala[i].x < 0 or infoBala[i].x > 480 or infoBala[i].y < 0 or infoBala[i].y > 272 then
infoBala[i].disparando = false
end
end

while true do
pad = Controls.read()
screen:clear()
if pad:circle() and oldpad:circle() ~= pad:circle() then
configBala()
end

if pad:left() and horizontal >0 then
horizontal = horizontal - 2
end

if pad:right() and horizontal <450 then
horizontal = horizontal + 2
end

if pad:left() and horizontal >0 and pad:square() and estado == "piso" then
horizontal = horizontal - 4
end

if pad:right() and horizontal <450 and pad:square() and estado == "piso" then
horizontal = horizontal + 4
end

if pad:cross() and pad:square() and pad:left() and estado == "piso" or
pad:cross() and pad:square() and pad:right() and estado == "piso"

then estado = "saltando alto" end

if estado == "saltando alto" then
velocidad = velocidad - 0.4
gravedad = gravedad - velocidad
end

if gravedad == 230 then
velocidad = 10
estado = "piso"
end

if gravedad > 230 then gravedad = 230 end

vertical = gravedad

if pad:cross() and oldpad:cross() ~= pad:cross() and estado == "piso" then estado = "saltando" end

if estado == "saltando" then
velocidad = velocidad - 0.5
gravedad = gravedad - velocidad
end

if gravedad < 0 then
estado = "cayendo"
end

if gravedad < 230 and estado == "cayendo" then
gravedad = gravedad + (velocidad + 3)
end

if gravedad == 230 then
velocidad = 10
estado = "piso"
end

if gravedad > 230 then gravedad = 230 end

vertical = gravedad

screen:blit(0, 0,fondo)
screen:blit(horizontal,vertical,jugador1)
screen:blit(0,262,piso)

screen:print(10,10,"X: "..horizontal.." Y: "..vertical,amarillo)
screen:print(10,20,"Estado del jugador: "..estado,blue)

disparoBala()
screen.waitVblankStart()
screen.flip()
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 ELeNDeR

Está claro que tendrás que

Está claro que tendrás que juntar los dos códigos. Cuando puedas, postea aquí tu código e intentaremos entre todos echarte una mano. Saludos.

P.D: Estoy traduciendo el tercer Snippet, se trata de crear una barra de vida, muy útil para este tipo de juegos.

Ya puse el código... por

Ya puse el código... por cierto elender... ay te vi en evil mana :D

Imagen de ELeNDeR

Mirando un poco el código

Mirando un poco el código veo algunos fallos, tales como:

jugador = {}
gravedad = 230
vertical = 230
horizontal = 50
velocidad = 10
estado = "piso"

Gravedad, vertical, horizontal, velocidad y estado son tipos del array jugador, por lo que habría que ponerlo así:

jugador = {}
jugador.gravedad = 230
jugador.vertical = 230
jugador.horizontal = 50
jugador.velocidad = 10
jugador.estado = "piso"

Estas líneas están repetidas:

if gravedad 230 then gravedad = 230 end
vertical = gravedad

Prueba a cambiar eso y fijate al iniciar el programa en que línea te da error. Cuando pone: "error: script.lua:33: xxxx" significa que hay un error en la línea 33. ¿Ok? 

En cuanto a lo de evilmana... que menos que pedir la conformidad del creador de los tutos en que los traduzcamos para nuestra web, ¿no?  

Es curioso, pero sin cambiar

Es curioso, pero sin cambiar ninguna línea, me lo ejecuta a la perfección... que podría ser? o si podrías subir un código de como quedaría mas o menos, pero eso ya sería mucho.

Imagen de ELeNDeR

Si te funciona, pues

Si te funciona, pues adelante. Para poder subir un código que lo haga todo requiere tiempo, cosa de la que estamos todos muy escasos, pero no lo descarto. Por ahora lo próximo que haré será subir el nuevo tutorial traducido y luego ya veremos. Saludos.

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.