nesecito una ayuda de como hacer un disparo en lua con un sprite ya k en el tutorial de disparo multiple me da una variedad de errores en vez de disparar todos los tiros k kiera dispara 5 veces y luego ya deja de disparar y la coordenadas se quedan estatica por ejemplo el personaje k muevo con la tabla
Posicion[1] = {x = 50,y = 100}
screen:blit(posicion[1].x,posicion[1].y,imagen)
--Array para las balas.
infoBala = {}
for a = 1,5 do
infoBala[a] = { imagen = bala , disparando = false, direccion = "derecha", x = posicion[1].x + 32, y = posicion[1].y + 16 }
end
por favor digame como se pone el codigo
un salu2
pues
en fin podrias usar lo que la base de lo que vendria siendo en de eso ya que la funcion que corresponde precisamente y en efecto asi podras usarlo sin probleamas, me explico?
Muy bien.
Así es como se hace un disparo, si miras el ejemplo de juego programado en Lua que Unicorn me cólgo en portada verás como defino cinco balas para cada jugador y cinco explosiones...
http://psp.scenebeta.com/system/files/JUEGO-ADHOC.rar
Aunque luego les quite los timer porque me causaban problemillas en el modo Adhoc aunque eso es otra historia. Lo que hice fué que hasta que no termina la animación de la explosion de la bala no puedes volver a dispararla y así es parecido pero sin usar timers.
Gracias
los estoy viendo ahora mismo a ver si aprendo algo.
ya pude crear
el disparo aunque tarde dos horas pensando como hacerlo solo tenia k aprender un poco de los timers puse esto en mi codigo
puededisparar = true
contador = Timer.new()
LaserTabla = {}
LaserTabla[1] = {x = posicion[1].x,y = posicion[1].y}
Dentro del bucle while puse lo siguiente:
Recargando = contadorDisparo:time()
if pad:cross() and oldpad:cross() ~= pad:cross() and puededisparar == true then
LaserTabla[1].x = posicion[1].x
LaserTabla[1].y = posicion[1].y
puededisparar = false
contadorDisparo:start()
end
if Recargando < 700 then
screen:blit(LaserTabla[1].x + 16,LaserTabla[1].y + 9,Laser)
LaserTabla[1].x = LaserTabla[1].x + 15
end
if Recargando > 700 and puededisparar == false then
puededisparar = true
contadorDisparo:reset()
contadorDisparo:stop()
end
Me salio de Maravilla aunque Solo crea un disparo pero mas adelante pondre que dispare multiple disparo.
Gracias de Antemano
mira
bueno, si estas utilizando el ide, puedes poner un control de imagen para el arma, y yo utilizaria un shape para la bala, aunque tambien te serviria un control de imagen,
te recomiendo lo hagas maximizado o a pantalla completa..
ya viste que los controles del ide estan a la derecha...siendo asi...
seria algo como}
mover ese shape...
ejemplo
shape1.Left =inicio
luego un bucle
como
un for que vaya de incio a fin ya sea calculado o fijo
es decir la bala va asta 100 puntos, y cada 10 cae uno aabajo...no arriba obvio
seria
si shape1.left diferencia de incio es de 10 en 10
entonces shape1.top a menos 1
y va callendo el disparo...es decir entre mas lejos menos le atinas
Creo que si solo te dispara
Creo que si solo te dispara cinco veces es por que tienes que poner que que cuando llege al disparo 5 haz que cuando llegue al 6 sea 1 y así no para.
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 puse
a ver lo k pasaba puse screen:print(10,20,"disparo : "..tostring(infoBala[1].disparando,Azul) y es k la bala 1 al 5 siguen afuera de la pantalla me di cuenta cuando puse screen:print(10,30,"posicion :"..tostring(infoBala[1].x),Azul) me muestra la posicion de la bala 1 pero cuando sale de la pantalla se para en 480 y cada vez k le toca a la bala 1 o a la demas avanza 10 pinxeles y lo de punto de salida ni idea creo k es por la imagen animada o por k ta fuera del bucle while.
nesecito una ayudita para esto
Una pregunta, ¿qué quiere
Una pregunta, ¿qué quiere decir tostring?
Saludos
tostring
convierte la informacion de la tabla en texto si no la pones te da un error.
Gracias
Gracias
verda
eso mismo dije yo, o no...jeje
o que la cancino
o que la cancion con tigo....esta es una funcion que permite que los camando o datos introducidos en la pocicion de la funcion que le corresponde haga referencai a varias operaciones pasandolas por identificadores que permiten que el valor dado en este caso un a sifra no alfanumerica sino digitral de digitos correspondientes a los decimales, estos sean procesados y sean utilizados por dicha funcion para que en conjunto con las partes que las acopla sean interpretados por asi decir como caracteres alfanumericos y no aya errores al combinar lo contrario con otros. esta claramente especificado en el manual de dicha funcion de lua. date una vuelva por ahi. gracias.