Anuncios Google

Sprites [40 scenebitos] y (otro error[15 scenebitos]Solucionado)

¿Como se hace para que cuando el sprite o personaje que movemos pase del limite de pantalla (480 pixeles) la pantalla avance y el sprite no desaparezca en pantalla aunque se pueda controlar?

No se porque me sale: Error: arma.lua:41: function arguments expected near 'function'

Este script "arma.lua" tiene la misma estructura que otros scripts de mi juego y en cambio no me dan errores.

--imagenes
 
misil1 = Image.load("SFX/Player/balas.png")
misil2 = Image.load("SFX/Player/balas.png")
misil3 = Image.load("SFX/Player/balas.png")
misil4 = Image.load("SFX/Player/balas.png")
misil5 = Image.load("SFX/Player/balas.png")
misil6 = Image.load("SFX/Player/balas.png")
 
--sonidos
 
System.oaenable()
 
recargar = Sound.load("recargar.wav",false)
 
disparar = Sound.load("disparar.wav",false)
 
 
--variables
 
bala = {}
 
bala[1] = {x=S[1].x+2,y=S[1].y,cargadores=4,balas=150}
 
spriteb = misil1
 
pasosdb = 0
 
pasosib = 0
 
tiempo1 = Timer.new()
 
tiempo1:start()
 
tiempo3 = Timer.new()
 
tiempo3:start
 
---funciones
 
function nada()
 
tiempoactual22234 = tiempo3:time()
 
if tiempoactual22234 > 1000 then
 
bala[1].x = bala[1].x + 20
 
pasosdb = pasosdb + 1
 
end
 
end
 
function sprtbderecha()
 
tiempoActual222222 = tiempo1:time()
 
if pasosdb >= 0 and pasosdb < 10 and tiempoActual222222 < 1000 then
 
spriteb=misil1
 
end
 
if pasosdb >= 1 and pasosdb < 2 and tiempoActual222222 < 2000 then
 
spriteb=misil2
 
end
 
if pasosdb >= 2 and pasosdb < 3 and tiempoActual222222 < 3000 then
 
spriteb=misil3
 
end
 
if pasosdb >= 3 and pasosdb < 4 tiempoActual222222 < 4000 then
 
spriteb=misil4
 
end
 
if pasosdb >= 4 and pasosdb < 5 and tiempoActual222222 < 5000 then
 
spriteb=misil5
 
end
 
if pasosdb >= 5 and pasosdb < 6 and tiempoActual222222 < 6000 then
 
spriteb=misil6
 
end
 
if pasosdb >= 6 then
 
paosdb = 0
 
end
 
end
 
function gastar()
 
bala[1].balas = bala[1].balas - 3
 
if bala[1].balas < 0 then
 
bala[1].cargadores = bala[1].cargadores - 1
 
bala[1].balas = bala[1].balas + 150
 
end
 
end

 


Image Hosted by ImageShack.us 


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 DeViaNTe

exate un ojo a mi motor RPG

Puedes mover el personajillo y la pantalla te sigue automáticamente. Echale un ojo al código. Busca en aportes de usuarios Motor RPG. Saludos men!


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es

Imagen de Migueliziosop

Te recomiendo..

Este homebrew, se llama RPG Demo v6, yo tenía la v4 & v5 porque me gustaban más pero la v6 según el autor contiene como más optimizado el código.

Este al mover arriba de la pantalla el mapa va moviendose poco a poco, super bueno y ese homebrew muestra el potencial de LuaHM.

El unico problema es que veo que está en LuaHMv2, solo sería adaptarlo o solamente estudiar las funciones del mapa.

Espero que te funcione. Saludos.

PD: Si ese no te funciona prueba con las versiones v4 & v5.

Imagen de recoco

Sabes

¿Sabes porque da error de "attempt to index field '?" al relacionar una variable con otra?

if infoBala[i].x == Z[1].x then
 
vida = vida - 1
 
end
 
--No se porque me da error. En cambio si relaciono la variable de un personaje con otro quita vida. El tutorial es el de Disparos multiples.


Image Hosted by ImageShack.us 

Imagen de trom_us

field

se refiere al campo, y este no existe. ejemplo z[l].x si l es 24 pero se supone solo llega a 3, o en infobala de i donde i es un valor fuera del total de campos. entonces el campo no existe, o .x no existe, algo asi...creo

Imagen de recoco

Gracias

Gracias, aunque va a ser complicado porque utiliza tiles que va imprimiendo en coordenadas x diferentes para imitar un fondo.

Imagen de trom_us

bien

cuando on objeto siempre es visible en pantalla, llamese personaje, este solo deve estar limitado a moverse en x rango

 

if perosanej.x<0 then

personaje.x=0

end

if perosanej.x>480 then

personaje.x=480

end

 

y cuando quieres que su fondo se mueva tambien segun la posision del personaje,

primero cuantos fondos hay, es decir 480+480+480, o de arriba abjao, 272+272, etc...

supongamos solo hay dos de izquierda a derecha.

fondo[1].img = imagen1

fondo[2].img = imagen2

fondo[1].x = 0

fondo[1].y = 0

fondo[2].x = 0

fondo[2].y = 0

--

if fondo[1].x < -480 then

 fondo[1].x = 480

end

if fondo[2].x < -480 then

 fondo[2].x = 480

end

if fondo[1].x > 480 then

 fondo[1].x = -480

end

if fondo[2].x > 480 then

 fondo[1].x = -480

end

if perosanej.x<0 then

 personaje.x=0

 fondo[1].x = fondo[1].x + 1

 fondo[1].x = fondo[1].x + 1

end

if perosanej.x>480 then

 personaje.x=480

 fondo[1].x = fondo[1].x - 1

 fondo[2].x = fondo[2].x - 1

end

luedo le das screen:blit de tus imagenes

------------------

si fueran mas de 2 imagenes o todo un paisaje o mundo, emplea un bucle

para ahorrar velocidad, recortalas antes de visualizar.

y para ahorrar memoria suponiendo sea todo un mundo..(mas de 10 imagenes de fondo), recarga la imagen que corresponda, segun en que imagen estes, 1+1 cada que avance 480 o 1-1 cada de disminuya 480, asi sabras en que imagen de fondo estas, y la recargas.

es algo simple, pero funciona.

Imagen de recoco

Lua

Ahora me da un error referente a function.

Imagen de rubenelportero

para eso

te tienes que crear una funcion, lo primero, que quieres, que cuando llegue al limite 480, empieze el personaje en 0 y cambie de mapa no?, eso es facil, pero embargo quieres que cuando se acerque el personaje a la esquina el mapa se vaya moviendo, eso es mas dificil...

salu2

Imagen de recoco

No

No. Lo que quiero es que cuando el personaje llegue a 480 no siga avanzando como si fuera un fantasma, sino que avance pero que tambien avance el fondo, asi no desaparece el personaje de la pantalla.


Image Hosted by ImageShack.us 

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.