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.
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 FORfor 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 repetitivowhiletruedo--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 empezarif sprite>"numero de sprites"then sprite=0.1end--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
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
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=1whiletruedo--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 empezarif sprite>"numero de sprites"then sprite=0.1end--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
"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?
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...
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!.
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:
Conclusión:
A veces es mejor "idear" métodos artesanales...
Un saludo amigo, espero que te sirva.
Si tienes más dudas, PREGUNTA!!
Dos años en SCENEBETA
Click aquí para ver la Entrada de Bitácora.
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
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
Dos años en SCENEBETA
Click aquí para ver la Entrada de Bitácora.
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?
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 -_-
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
jejeje trankilo jorge note
jejeje trankilo jorge note sientas comprometido..XD
jajaja adivinaste
jajaja adivinaste,pero aun asi ya casi termino tu tutorial..por cierto muy bueno