Ya esta disponible en github ( https://github.com/jjaranda13/8BP ) la version V19 de la libreria 8BP, totalmente retrocompatible. Incluye:
- libreria 8BP:
- mejoras en COLSP y soporte de "secuencias de muerte"
- los directorios aparecen mejor organizados
- documentación: disponible el manual v19, que incluye:
- nuevo uso del comando COLSP
- soporte de secuencias de animacion "de muerte".
- recomendacion sobre directorios en los que almacenar los ficheros de tu proyecto
Mientras programaba el videojuego Anunnaki, me di cuenta de que sería muy útil un tipo de secuencia de animación que al terminar de reproducirse desactivase automáticamente a un sprite.
Cuando disparas y matas a un enemigo, hay que cambiar su imagen por la secuencia de animación de una explosión, pero no pretendemos que se desactive totalmente, queremos que siga siendo animado al invocar ANIMAALL y que se sigan imprimiendo sus fotogramas al invocar a PRINTSPALL, sin embargo al finalizar la explosión queremos que ya no se vuelva a imprimir. Para ello he incorporado las "secuencias de muerte"
Una secuencia de muerte es simplemente una secuencia de animación que en lugar de acabar en "0", acaba en "1". De este modo, la función que anima a todos los sprites detecta esta circunstancia y nos desactiva al sprite automáticamente al llegar a dicho "1", sin que tengamos que vigilar desde BASIC en que fotograma de la explosión se encuentra el sprite para finalmente desactivarlo.
Esto es posible controlarlo desde BASIC, pero no cabe duda de que de esta manera es mas cómodo y permite una mayor limpieza en nuestro código. Cuando tu disparo alcance un sprite, desactiva su flag de colisión y asígnale una secuencia de muerte. En este estado "zombie" durará solo hasta que su secuencia de muerte finalice.
En el siguiente video tenéis un ejemplo de uso en el videojuego Anunnaki
Hay mas novedades en la versión V19 de 8BP:
Ahora el comando |COLSP que permite detectar colisiones entre sprites es mas veloz. Resulta que pasar un parámetro de tipo variable de basic (@var%) es muy costoso. consume nada menos que 1.1 milisegundo. Pues bien, he incorporado una funcionalidad que permite definir una vez la variable y el resto de invocaciones dejaran el resultado en la misma variable, sin necesidad de volver a especificarla:
colision%=0
REM el sprite 33 no existe, es una forma de especificar donde dejar el resultado
|COLSP,33,@colision% :
REM esta invocacion deja el resultado en la variable colision y consume 1.1 ms menos
|COLSP,31
Espero que estas mejoras os ayuden con vuestros videojuegos!
No hay comentarios:
Publicar un comentario