Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: SrTrp en 3 Julio 2017, 20:58 pm



Título: Ayuda con javascript - Sprite canvas
Publicado por: SrTrp en 3 Julio 2017, 20:58 pm
Tengo una imagen de 200 de anchor y 100 de altura y en ella hay 2 sprites cada uno es de 100x100 intento darle una animacion que cambie pero en lugar de se cambie cada cierto tiempo parece un carrete que va recorriendo toda la imagen no se si tenga un error algo.
No soy muy bueno en las matematicas de videojuegos.

EL spritecw Es la variable que lleva acabo la imagen.
Código:
 function crear(ctx){
        if(player.timer%2==0)
            player.drawImageArea(ctx,spritecw,(~~(aTimer*10)%10)*10,0,100,100);


Título: Re: Ayuda con javascript - Sprite canvas
Publicado por: ivancea96 en 3 Julio 2017, 21:27 pm
Basta hacer el cálculo de esta ecuación: ~~(aTimer*10)%10.
Sea lo que sea aTimer, el resultado saldrá entre 0 y 10. Dado que lo multiplicas por 10, saldrá entre 0 y 90 (0, 10, 20...), que es la "transición" que tú ves.

Necesitas otra ecuación. Tú quieres, supongo, que cada X segundos, cambie el sprite. Para ello, sería algo como:
Suponiendo que aTimer sean los segundos transcurridos.
Código
  1. Math.floor(aTimer*(1/2 /* cada 2 segundos */))%2 * 100
Eso dará, cada 2 segundos, 0 o 100. En fin, es jugar con la ecuación.

De todos modos, si vuelves a tener un problema así, revisa las ecuaciones. Nada de lo que ocurre en tu programa es un "no funciona como yo quiero". Funciona todo como tú le has dicho; revisa por qué ;D


Título: Re: Ayuda con javascript - Sprite canvas
Publicado por: SrTrp en 3 Julio 2017, 23:35 pm
Gracias me sirvio demasiado con lo que me brindaste solo hice que ajuste el tiempo
así quedo mi linea ;-) ;-) ;-) ;-) ;-)
Código
  1. player.drawImageArea(ctx,spritecw,(Math.floor(aTimer*(100/2))%2 * 10)*10,0,100,100);