Hola! ¿Qué tal les va?
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 originalvoid 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!