Tengo un problema, estoy trabajando con direct2d y lo que estoy tratando de hacer es crear una animacion apartir de un sprite, es decir tengo esta imagen :
y quiero que se vea la animacion de megaman corriendo, para eso tengo esta funcion por ahora:
Código C++:
Ver original
void Render() { // Este es el desplazamiento que tendra la imagen en cada cuadro static float actual = 2.0f; objetivo->BeginDraw(); objetivo->Clear(D2D1::ColorF(D2D1::ColorF::SkyBlue)); // Aqui corto la imagen para que solo se vea un cuadro de 50x45 objetivo->PushAxisAlignedClip(D2D1::RectF(0.0f, 0.0f, 50.0f, 45.0f), D2D1_ANTIALIAS_MODE_PER_PRIMITIVE); // Aqui dibujo la imagen desplazada de acuerdo al valor de actual objetivo->DrawBitmap(imagen, D2D1::RectF(-(50.0f*actual), 0.0f, imagen->GetSize().width, imagen->GetSize().height)); objetivo->PopAxisAlignedClip(); objetivo->EndDraw(); // lo reinicio actual++; if(actual > 11.0f) actual = 0.0f; }
Ahora lo que no entiendo es por que si tengo actual en 0.0f o en 1.0f toma bien el offset es decir me muestra el primer y el segundo cuadro respectivamente, pero de ahi en adelante todo se ve mal, es decir asi mas o menos:
Alguien sabe como hacer bien algo asi? (me refiero a lo de hacer animaciones con sprites) Ah y por cierto, la imagen la tengo bien dividida en 11 cuadros de 50px
Espero que me puedan ayudar!
Gracias!