Hola, estoy tratando de crear una animacion de una explosion cada vez que un objeto colisione con otro.
function explosion() for i = 0,120,40 do image.blit(img_explosion,Acarro.x,Acarro.y,0+i,0,40,40) end end
A la funcion explosion la llamo dentro de otra funcion que es la de "colision" el problema es que al parecer las imagenes se muestran tan rapidamente que no permite ver la animacion de la explosion como deberia de ser, lento y que se vean bien cada una de las imagenes.
La imagen es un sprite de plantilla de 160*160 y divida en cuadros de 40*40, en el codigo de arriba solo muestro la primera linea de imagenes, quiero mostrar las 4 lineas, pero primero que funcione correctamente.
Si algun coder me diera una mano(y)
Salu2
Si no tienes memoria
Si no tienes memoria suficiente, te cargas las imagenes que no uses
We're off now to seek all our fortunes to the land... of... our dreams
Lo que te dice Deviante es lo
Lo que te dice Deviante es lo mejor que puedes hacer, pero para los que vamos empezando puede ser complejo (para mí si lo es xD).
Te mostraré como trabajar con sprites de una manera muy sencilla, estoy seguro que podrás adaptarlo a tus necesidades una vez que veas como se hace:
Animaremos a Tim:
No le prestes atención a lo feo del sprite, no lo hice a conciencia, sólo para probar xD
Como te podrás dar cuenta en el código, se blitea el mismo cuadro del sprite 10 veces, para que no vaya tan rápido la animación. Después, cambia el cuadro del sprite, y se blitea 10 veces antes de cambiar de nuevo. Una forma muy sencilla de animar, y con control total de los retrasos entre cuadro y cuadro. Si te parece que la animación va muy rápido, o muy lento, es cosa de modificar el valor en la condición de la línea 11 y ya está
Saludos
Emmmmm si tengo el code tuyo
Emmmmm si tengo el code tuyo en un script me f y la imagen me funcionara?
Supongo que si, aunque te
Supongo que si, aunque te advierto que no lo probé, bien pudiera ser que se me haya escapado algo por ahi :P
O.O Ahora lo pruebo y te
O.O Ahora lo pruebo y te digo
EDITADO: no enough memory, que es eso?
Editado: Crear hilos y comentarios duplicados incumple las Normas de la Comunidad, si necesita cambiar su comentario puede usar la opción de Editar. Antes de volver a postear por favor revise las Normas.| Rober Galarga
Follow me twitter nautilus1_jmccu!!
Sony, ya a nadie le interesa tus UMD si alguien compra una psp es por nosotros los coders. Madura y has un FW que haga la diferencia y anime a las personas en comprar un PSP
Literalmente dice que no
Literalmente dice que no tiene suficiente memoria. No sabría decirte que hacer... cuando yo usé ese sprite me funcionó muy bien :S
Justamente
para hacerlo correr rapido, y bien, solo pon el XMB a 333, Saludos! (O desde luadev, la memoria la pnes a 333, y listo!! :D)
memoria?
no es a a la memoria a la que le cambias la velocidad, es al cpu que se le pone 333MHz
Hahaha
Hahaha TIM xD...¿Amigo te molesta si pongo a TIM como mi avatar? :D, me gusto ese TIM xD.
Saludos.
Adelante, Tim no es creación
Adelante, Tim no es creación mía (por eso tiene nombre xD). Yo sólo monté ese sprite ;)
Haha
Haha ok =).
Genial
Algo asi es lo que buscaba, a claro que no estoy demeritando el trabajo de Dev pero es mas "pro" su codigo y no logro entenderlo al 100 por 100.
Estaba pensando algo parecido a esto que has puesto, con variable y sumar uno a cada pasada del bucle para mostrar la animacion, es parecido, pues solo lo tenia en la mente :D.
Vere si mas de rato me pongo con el codigo.
Salu2 Rober
:P
Ehm, por lo que veo, te estas complicando mucho, vienes de hm. xD
En LuaDEV puse una funcion especificamente para sprites, para no complicar las cosas.
Al cargar la imagen, cambia load por :
img_explosion = image.loadsprite('ruta.png',40,40);
Con esto ya tenemos pues... los frames que sean, k si calculo bien son 16, amos, contando desde 0, tienes los frames del 0 al 15.
Lo que haces con ese while es pintar TODOS los frames a la vez, con lo que no es que sea rapido, es que no lo vas a ver.
Para hacer un juego pintamos frame a frame, partiendo de ahi, no podemos pintar una animación del tirón, es decir, con un for, por que no verás animación, verás un momento aparecer y desparecer tu ultima imagen de la explosión.
pongamos que tienes un code tal que así:
Antes del screen.flip, deberías mostrar la animación, pero ojo, no toda, si no un frame. Al siguiente ciclo, despues de volver a leer controles, pintar fondo, pintar personaje, entonces, pintar el siguiente frame, y vuelta a empezar, así los 15 frames.
Te recomiendo que estudies la posibilidad de crear una tabla y algunas funciones para que lo puedas poner antes del screen.flip() y que se haga todo solo...
Algo tal que así:
Vale, con eso, en el momento de colisionar, añadimos efecto, y en el while, antes del flip, pintarefectos. los efectos iran por libre y se eliminaran de la tabla cuando akaben, y no mostraremos todos los frames en el mismo frame, con lo que la animación será animada.
:P espero le sirva a alguien
un saludo,
Dev.
Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es
Gracias Dev
Se ve algo extenso para solo una animacion :). Pero tratare de entenderla y ver si puedo crearme algo mas simple.
Salu2