ESP Soft

El CPC, nuestros juegos y otras historias.

¡Scroll finiquitado!

Publicado por artaburu Septiembre - 7 - 2009

code_scrTras un largo fin de semana y un lunes intenso, he conseguido hacer funcionar el scroll en el mapa de tiles. En realidad, lo que es el scroll funcionaba desde hace tiempo, con lo que no daba era con la forma de actuar con los sprites que se salen del area de tiles. No encontraba el método y me daba fallos que bloqueaban la máquina. El Sábado noche ya me puse serio y descubrí el motivo de los cuelgues, estaba trasteando con la coordenada ox de los sprites (la posición anterior) y la estaba igualando a la actual tras el scroll. Muchas veces se quedaba fuera del area de tiles y al ir a restarurar los tiles escribia en cualquier sitio y reventaba. Un gran avance evitar los cuelgues.

Tras este avance sin precendentes, las pruebas demostraron que iba todo bien excepto que el sprite se quedaba dibujado en la última posición antes de salir de la pantalla, aunque ya no estaba ahí. Con esto me tiré el domingo, buscando si lo hacia funcionar modificando la actualización de los tiles (haciendo que no se actualicen si son negativos), pero nada. En un momento lo llegué a tener, pero no se la que lié que al recompilar se me estropeó y volvió a fallar… y lo peor de todo que no se porqué.

El caso es que hoy le he dedicado un rato tras terminar de currar mientras volvíamos de un cliente y me llevaban de copiloto… es algo tan sencillo como al salir de la pantalla el sprite, actualizar los tiles de la posición en la que está, pero sin dibujarlo. Espero no llevarme otro disgusto y encontrar que falla…

El resumen de lo que se hace con el scroll es lo siguiente:

1. Se comprueba si el movimiento del sprite controlado por el jugador obliga a hacer scroll a derecha o izquierda.

2. Actualiza la posición de todos los sprites.

3. Se comprueba si el movimiento de los sprites controlados por el ordenador se salen del area visible y se obra en consecuencia marcándolos como invisibles.

4. Se realiza una de las siguientes acciones:

a) Actualización de la pantalla (no hay scroll). Se dibujan los sprites visibles y se borran aquellos que acaban de salir de la pantalla.

b)Se realiza el scroll a la derecha o izquierda y se dibujan los sprites visibles y se borran aquellos que acaban de salir de la pantalla.

El scroll se realiza en los siguientes pasos:

* Actualización del sprite controlado por el jugador.

* Scroll del mapa de tiles, de la pantalla virtual y dibujado de la columna nueva que entra en la pantalla.

*Dibujado/actualización de los sprites en pantalla antes de hacer el scroll. Se actualizan las coordenadas de los sprites para adecuarlas a la nueva posición de la pantalla. Si el scroll se mueve a la derecha, los sprites se mueven hacia la izquierda para mantenerlos en la misma posición en la pantalla.

¡Y con esto parece que funciona!

Mañana intentaré preparar la cpcrslib y subirla con un ejemplo que procederé a comentar. Y si no es mañana, otro día :D

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

3 Responses to “¡Scroll finiquitado!”

  1. na_th_an dice:

    Me reitero, interesante, interesante. ¿Y cómo va de velocidad? :D

    (tengo que darme prisa y terminar PM :D )

  2. na_th_an dice:

    ¡¡COJONUDO!! :D

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