Señor Ventura escribió:Entendido... entonces, si quieres añadir "un conjunto de tiles" para obtener un plano por software, no sale a cuenta porque este se desplazaría de 8 pixels en 8 pixels, y no hay otra forma de hacerlo por las buenas.
Sí, eso es, aunque hay que tener en cuenta lo que también comenta ThElf en el caso que quieras hace el scroll de uns parte de un plano por software: si ninguna tile del gráfico que quieremos mover independientemente tiene transparencia, se puede hacer más fácil.
Ejemplo chorra: una nube cuadrada que todos sus bordes se ciñen a los bordes de tiles 16x16 y de fondo tienen unas montañas. Si todo pertenece a un mismo BG no puedes mover independientemente por hardware la nube por delante de las montañas, y tendrías que hacerlo por software. ¿Cómo hacerlo? Pues teniendo en ROM almacenada 4 versiones de esa nube cuadrada desplazada 2 píxeles en cada posición dibujando en esos dos píxeles desplazados la parte de la montaña que se destapa por el movimiento de la nube.
Como ves es algo costoso de hacer.
Señor Ventura escribió:Obligaría a idear una rutina que encargue a la cpu la tarea de desplazar los tiles de pixel a pixel, pero intuyo que sería bastante costoso, mas que nada porque el código debería empezar por ahí cada vez que comienza un frame, y eso podría ser conflictivo en los momentos en que un programa demande rutinas con total prioridad, pudiendo causar ralentizaciones, etc... ¿no?.
Sí, ésa es la otra alternativa a tener en ROM ya dibujadas las tiles con ese desplazamiento.
Lo cierto es que acabo de caer en un modo de la SNES que se llama Offset por Tile que no sé si se podría usar para hacer ese efecto que dices, ya que no lo he usado nunca ni he visto usarlo para hacer scroll. Lo he visto para desplazar la ventana de diálogo de un juego de RPG (no recuerdo si el Chrono o el FF6) de modo que la ventana de diálogo la tienes en VRAM en una posición fija y el tilemap es fijo también, por lo que debería de salir siempre en la misma posición de la pantalla, pero pulsando el botón X la ventana cambia de posición en la pantalla usando el modo Offset per Tile.
Diskover escribió:Gammenon escribió:
El truco del Battletoads es mover bloques de píxeles a diferentes velocidades. El caso más extremo de esta técnica es el suelo con perspectiva de SF2 y similares.
Ya, eso es lo que he dicho.
Es el,ejemplo más primitivo de scroll paralax.
Luego, si se mezcla con diferentes background de profundidad se consiguen cosas como los gif de ejemplo de SNES
Ummm, puede ser, pero yo veo una laguna en eso que decís: estas consolas antiguas no mueven píxeles, mueven tiles. Eso quiere decir que cada vez que desplaces una tile, el movimiento es brusco de 8 píxeles a la vez (si la tile es 8x8).
No sé si me explico: el scroll implementado por hardware implica mover una cámara con 1 píxel de precisión por una rejilla de tiles de 8x8; cuando te has desplazado 8 píxeles, ya has llegado al límite de una tile que está en el borde de la pantalla y antes de desplazar el siguiente píxel, te da tiempo a actualizar la siguiente tile 8x8 a mostrar. Así el efecto es suave.
Pero si tú quieres mover una tile 1 píxel, no puedes hacerlo, porque o cae en la posición de la reijlla -8 o en la posición +8.
No sé si alguien sabe exactamente cómo se hace esto, porque yo no caigo ahora mismo...