ESP Soft

El CPC, nuestros juegos y otras historias.

Scroll… un poco más.

Publicado por artaburu Septiembre - 4 - 2009

En unos ratillos que he conseguido burlando la pareza he estado cambiando un poco el orden de las operaciones para el scroll y he conseguido que el movimiento sea bastante más fluído que antes. La verdad es que en las pruebas previas había conseguido hacer que los sprites se quedaran o movieran por donde debían. Ahora, sólo probando con un sprite que controlo yo, el scroll es más agradable a la vista y no se nota tanto los saltos como antes.

Teniendo en cuenta que es un scroll brutote por software, con mapa de tiles, creo que no está mal y que puede dar juego. Todavía me quedan algunos detalles que pulir antes de dar por bueno y definitivo y publicar la librería pero por lo menos, estoy viendo luz al final del túnel.

Este es el churro de sentencias para hacer el scroll con sprites:

cpc_ResetTouchedTiles();
cpc_PutSpTileMap(sprite00);        // Para actualizar los tiles q toca el sprite
cpc_UpdScr();                    // restaura los tiles actualizados
cpc_PutTrSpTileMap2b(sprite00);    // Ahora se dibuja el sprite
sprite00.cx=sprite00.cx+2; // sl sprite tb se scrollea
cpc_ResetTouchedTiles();
cpc_ScrollRight0();
drawColumnI();
cpc_UpdScr();                // restaura los tiles actualizados
cpc_ShowTileMap2();

// tras el scroll se debe dibujar una vez sin scroll para limpiar bien!!
// ya se que es una caca, pero por ahora es así.
cpc_PutSpTileMap(sprite00);
cpc_UpdScr();
cpc_PutTrSpTileMap2b(sprite00);
cpc_ShowTouchedTiles2();    // solo muestra lo que se ve

De todo esto, el scroll en sí mismo es sólo esta parte:

cpc_ResetTouchedTiles();
cpc_ScrollRight0();
drawColumnI();
cpc_UpdScr();                // restaura los tiles actualizados
cpc_ShowTileMap2();

el resto es para actualizar el sprite y es la parte que menos me gusta y espero poder reducir un poco. Esta parte lo que hace es scrollear (mover bytes) de izquierda a derecha: mueve el mapa de tiles dejando vacía la columna (invisible) de la izquierda. Se rellenan los tiles  del mapa con drawColumnI() y luego con cpc_UpdScr() se dibujan esos tiles antes de mostrar la pantalla scrolleada con cpc_ShowTileMap2(). Aquí dejo un Snapshot del scroll, para verlo en un emulador en vivo y en directo.

Seguiremos informando.

Compartir:
  • Print
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • del.icio.us
  • Digg
  • email
  • Live
  • Meneame
  • MisterWong
  • MySpace
  • PDF
  • RSS
  • Technorati
  • Twitter
  • Webnews.de

2 Responses to “Scroll… un poco más.”

  1. na_th_an dice:

    Interesante… ;)

  2. artaburu dice:

    Pues sí, muy interesante. Además, ya he probado metiendo otros sprites grandecillos y da el pego :D
    Estoy teniendo otra vez problemas a la hora de saber si un sprite está dentro del área visible o no… ¿cómo algo tan sencillo me da tanto dolor de cabeza?

Leave a Reply

About Me

ESP Soft es un pequeño grupo de aficionados con algo en común: su afición por el Amstrad CPC.

Twitter

    Photos