Ya esta disponible la versión v36 de 8BP, disponible para descarga en https://github.com/jjaranda13/8BP la cual incorpora las siguientes mejoras:
- Comando |PRINTSPALL mejorado, con nuevo parametro de ordenacion
- Comando |PRINTSPALL con soporte de 4 modos de ordenamiento de sprites
- Se han optimizado en velocidad un poquito la impresion flipeada y el comando STARS
- la libreria no ha cambiado de tamaño, ocupa lo mismo
Con las mejoras de ordenamiento de sprites ya podemos hacer fielmente un juego tipo "Golden Axe" o incluso algo que se aproxima a un juego "filmation" ( ya he empezado a hacer uno, pronto lo vereis). Ahora os voy a detallar un poco las mejoras:
Comando |PRINTSPALL mejorado:
Ahora permite un parametro adicional para especificar el primer sprite que se va a ordenar del grupo de sprites ordenados, es decir ahora se usa del siguiente modo:
|PRINTSPALL, ordenini,ordenfin,anima,sync
Donde ordenini es el primer sprite que se va a ordenar y ordenfin el ultimo. Veamos un ejemplo de uso:
|PRINTSPALL,0,11,20,anima,sync
imprimiremos secuencialmente los sprites del 0 al 10, ordenados del 11 al 20 y secuencialmente del 21 al 31
Si el parámetro “ordenini” se omite, se considera el último valor asignado, o bien cero si nunca se ha asignado un valor. Ademas, si vas a modificar alguno de los dos parámetros de ordenamiento, conviene primero ejecutar PRINTSPALL,0,0,0,0 para que primero se reordenen los sprites secuencialmente antes de ordenarlos con una nueva configuración.
Imprimir de forma ordenada es más costoso computacionalmente que imprimir de forma secuencial. Ordenar todos los sprites lleva unos 2.5 ms pero si ordenas solo 5 te puedes ahorrar 2ms. Quizás tengas muchos sprites y no merezca la pena ordenar algunos, como los disparos o sprites que sabes que no se van a solapar.
Soporte de 4 modos de ordenamiento:
PRINTSPALL,0 : ordenacion parcial de sprites basado en Ymin
PRINTSPALL,1 : ordenacion total de sprites basado en Ymin
PRINTSPALL,2 : ordenacion parcial de sprites basado en Ymax
PRINTSPALL,3 : ordenacion total de sprites basado en Ymax
Los ordenamientos que usan Ymax se basan en la coordenada Y mayor de los sprites, es decir, donde se encuentran sus pies en lugar de su cabeza. Si los sprites son del mismo tamaño, un ordenamiento basado en Ymin te puede servir, pero si los sprites tienen diferente altura puede que desees ordenar según donde se encuentren los pies de cada personaje y para ello tendrás que usar el modo de ordenar 2 o el 3.
En el siguiente ejemplo se puede ver el modo de ordenacion 2 funcionando. En este ejemplo no he usado sobreescritura, sino tan solo ordenacion de sprites, pero se pueden usar ambas cosas a la vez sin ningun problema.
Los modos de ordenar con Ymax son mas lentos, aproximadamente 0.128 ms por sprite, de modo que úsalos cuando los necesites realmente
hasta pronto amigos!!!
Será cuestión de intentar programar un videojuego para Amstrad, del BASIC no pasé y con esta librería lo veo más fácil.
ResponderEliminaranimo $oloretro, estoy seguro de que en poco tiempo conseguirás hacer un juego. Te recomiendo empezar por un juego corto y sencillo que te sirva para tomar contacto y ya después meterte a un proyecto mayor. Cualquier duda, aqui me tienes!
EliminarMuy interesante. Yo hice mis pinitos en su dia. Y echaba de menos cosas como está. Lo hacía todo con print y era lioso para los "sprites". Y muy lento. Probaremos con tu ayuda. Gracias
ResponderEliminar