Anuncios Google

Sprites[Solucionado gracias a Rober G., Barney]gracias ya saque perfecto mis sprites..

hola a todos ,quiero saber porque cuando cargo mis sprites me salen entre cortados..gracias


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 barney77

Te salen cortados porque los

Te salen cortados porque los cuadros no son del mismo tamaño, lo que te dice jorge te servirá pero, más facil, recorta cada cuadro de tus sprites(del mismo tamaño cada cuadro) y unelos con está página, después ya tendrás tu spritesheet con los frames del mismo tamaño, una cosa si te digo, que si quieres programar algo bien echo, necesitarás tener aunque sea conocimientos básicos de diseño, tarde o temprano, a mí no me gustaba la ídea, pero lo intente y ya me está gustando, te lo recomiendo, comienza a meterte en este mundo del diseño.

¡Suerte!.

Imagen de jorge_97

By Jorge_97

jaja normal xD

Bueno esta pregunta la hice yo hace un año aprox. y nadie me la respondió, ahora ya soy un zorro viejo jaja...

 

Es muy sencillo seguramente estrás cargando los Sprites con image.loadsprite().

Debes tener en cuenta que las imágenes deben ser así:

|aaa|aaa|aaa|

Y no así:

|abb|aaa|aab|

Donde "a" es la imagen y "b" un espacio en blanco en la imagen.

Además el incoveniente gigante de image.loadsprite() es que las carga todas con las mismas dimensiones, quizá la imagen 1 tenga 100 de ancho y la imagen 2 apenas tenga 80... Por lo que esos 20 píxeles los coje de la siguiente.

Bien lo que puedes hacer es cojer las imágenes y ponerlas en imágenes diferentes y cargarlas una a una. Así cada imagen tendrá lo que le corresponde de ancho y alto.

Para guardarlas y cargarlas usa nombres sencillos como por ejemplo:

a1.png, a2..png, a3.png

 

Ahora para usarlos haces esto:

--Definimos la tabla con los sprites
a={}
 
--Los cargamos con un bucle FOR
for i=1,"numero de sprites" do
       a[i]=image.load("a"..i...".png")
end
 
--Esta variable será la que nos indique que sprite estamos viendo
sprite=0.1
 
 
--Iniciamos el lazo repetitivo
 
while true do
 
 
--Modificamos el sprite en el que estamos para que pase al siguiente
sprite=sprite+0.05
 
 
--Si el sprite que estamos viendo es mayor al máximo de sprites (Es decir, los que tenemos) que vuelva a empezar
if sprite>"numero de sprites" then sprite=0.1 end
 
 
--Mostramos el sprite actual. Usamos ceil para que nos devuelva un entero
a[math.ceil(sprite)]:blit(100,100)
 
--Actualizamos pantalla y cerramos bucle
screen.flip()
end

 

Conclusión:

A veces es mejor "idear" métodos artesanales...

 

 

Un saludo amigo, espero que te sirva.

Si tienes más dudas, PREGUNTA!!

 


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Andres_Ne

Perdon pero no te entendi

Perdon pero no te entendi sera que me puedes esxplicar ademas como le doy las opciones de movimiento..en otras palabras el tuto de como cargar sprites a tu manera te lo agradeceria toda la vida incluso te daria todos mis bitos..porfavor ayudame a saber..gracias


 

 

Imagen de jorge_97

By Jorge_97

Bueno lo primero no respondo/ayudo por Scenebitos...

 

Lo segundo

a ver tu tienes una imagen en la que están todos los sprites:

 

En vez de cargarlos con image.loadsprite()

Usando el paint o el programa de edición de imagen que usas divides esa IMAGEN en otras pequeñas...

Así lo único que tienes que hacer es cargarlas todas en una tabla.

 

Bueno ya te dejé el CODE arriba. Aquí te lo explico.

Lo que hacemos es cargar las imágenes ok?

En vez de hacer

imagen1=...

imagen2=...

imagen3=...

Pues usamos el for que lo que hace es repetir X acción con otro valor, este bucle no es necesario que lo entiendas aún.

 

Ahora creamos una variable que almacenará en que sprite estamos situados.

Y finalmente como ejemplo demostrativo te dejo el funcionamiento:

 

SPRITES:

1|2|3|4

--Variable que dice que sprite vemos
 
sprite=1
 
while true do
 
 
--Modificamos el sprite en el que estamos para que pase al siguiente
--Añadimos 0.05 porque si ponemos 1 la imagen se actualizará rapidisimo
sprite=sprite+0.05
 
 
--Si el sprite que estamos viendo es mayor al máximo de sprites (Es decir, los que tenemos) que vuelva a empezar 
--En este caso tenemos 4 sprites pues cuando sea mayor a 4 volvemos a empezar
if sprite>"numero de sprites" then sprite=0.1 end
 
 
--Mostramos el sprite actual. Usamos ceil para que nos devuelva un entero
--Al ir sumando 0.05 nos saldrán decimales, solo debemos redondar hacia arriba
 a[math.ceil(sprite)]:blit(100,100)
 
--Actualizamos pantalla y cerramos bucle
screen.flip()
end


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Chimecho

WTF?!

"Pues usamos el for que lo que hace es repetir X acción con otro valor, este bucle no es necesario que lo entiendas aún."

A ver si entendí. ¿Debe usar el for pero no es necesario que lo entienda? WHAT THE FUCK?!

Aunque por otro lado el for está explicado en uno de los tutoriales anteriores al que está leyendo, me comienza a dar la impresión de que comenzó por el hola mundo...



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Imagen de jorge_97

By Jorge_97

A ver el for ya lo verá en uno de tus tutos...

Si iba a leerlo luego, por que iba a explicarselo yo?

Un saludo

Imagen de Andres_Ne

jejeje trankilo jorge note

jejeje trankilo jorge note sientas comprometido..XD

Imagen de Andres_Ne

jajaja adivinaste

jajaja adivinaste,pero aun asi ya casi termino tu tutorial..por cierto muy bueno

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.