lunes, 19 de febrero de 2018

Usa más colores en 8BP con sobreescritura

Hola amigos de 8 Bits de poder

hoy os traigo un consejo de programación, una técnica para usar mas de 9 colores en 8BP con sobreesritura.

Como sabéis, A diferencia de muchos videojuegos que para la sobreescritura usan máscaras y doble buffer (gastando mucha memoria), en 8BP he optado por una solución que no gasta memoria y permite la sobreescritura y restablecer el fondo como por arte de magia, sin necesidad de guardarlo. Y sin necesidad de mascaras.

Básicamente 8BP "esconde" los colores del fondo dentro de los colores del personaje. En el fondo lo que ocurre es que los bits que se usan para el color de fondo no interfieren con los bits que se usan para el color del personaje y por lo tanto el fondo nunca se destruye aunque lo parezca. En el capitulo "sprites con sobreescritura" del manual describo con detalle esta técnica. La ventaja: no requiere doble buffer y es tan rápida como usar mascaras. El inconveniente: solo puedes usar 7 de los 16 colores para tus sprites y para los colores de fondo puedes usar 2 colores. Para los objetos de fondo que no requieran sobreescritura (una nube,un tejado) se pueden usar 9 colores. La limitación compensa la gran ventaja de no usar doble buffer, pues asi hay mucha mas memoria para tu programa. Por ejemplo el juego "Nibiru" usa sobreescritura ( mira la fase 2) usando esta técnica. Y también he subido algunas demos que la usan


Los resultados los teneis en las imagenes que siguen.

 
 

¿Y si quieres aun mas color?
Si has hecho tus primeras pruebas con sobreescritura y necesitas mas colores en tu videojuego, hay una forma de lograrlo, pero necesitas entender bien el método de 8BP.

Suponte que solo uno de tus sprites requiere sobreescritura y consume 3 colores. Eso significa que debes destinar 6 tintas a este Sprite. Sin embargo, si el resto de sprites no requieren sobreescritura, puedes imprimirlos sin sobreescritura y usar mas colores en ellos, es decir:
2 tintas para el fondo ( 2 colores)
6 tintas para el Sprite con sobreescrituras ( 3 colores)
8 tintas para los demás sprites ( 8 colores)

En este caso, en total podrás usar 13 colores!!!! Simplemente tienes que activar el flag de sobreescritura en el Sprite que lo necesita y dejarlo inactivo en los otros sprites. En los sprites que no usen sobreescritura podrás usar los 13 colores, en el Sprite con sobreescritura usarías 3 y en el fondo 2.


Otros ejemplos son posibles. Por ejemplo, si los sprites con sobreescritura necesitan 4 colores, entonces gastarán 8 tintas. Aparte tendremos 2 tintas para el fondo y las 6 tintas restantes pueden identificar 6 colores diferentes, es decir que podremos usar un total de 12 colores.

Espero que este consejo de programación os sea útil. Pronto os  traeré la 8BP v32 , está terminada, simplemente quiero entregaros también un juego de coches que estoy acabando. Un poco de paciencia y os prometo que os gustará

un abrazo y hasta pronto!


No hay comentarios:

Publicar un comentario