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
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
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.
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.