Entendiendo dibujado de tilemaps en CPCtelera y colisiones [#ASM #Z80]
Channel: Profesor Retroman
Date: 18/10/2019

[Sesión 8.4]: Realizamos un análisis del funcionamiento de los tilemaps y las funciones para dibujarlos en CPCtelera. Consideramos los aspectos más importantes y aprovechamos para considerar las colisiones con los elementos del tilemap.
Contenidos Detallados:
- Analizando los ejemplos de CPCtelera
-- Carpeta examples/easy/tilemap y cómo dibujar un tilemap usando cpct_setDrawTilemap4x8_ag
-- Recordando la importancia de entender cómo funcionan las cosas respecto a simplemente usar
-- Importancia de leer en detalle la información disponible en la ayuda y ejemplos de CPCtelera
-- Analizando los datos de un tilemap en memoria, su significado y funcionamiento
-- Analizando el requerimiento de que los tiles tengan el tamaño de 4x8 bytes, qué significa y cómo eso se distribuye en memoria
-- Viendo cómo pueden dibujarse partes de un tilemap en lugar de un tilemap entero, lo que permite hacer efectos de Scroll
-- Viendo el ejemplo de Scroll en la carpeta examples/medium/softwareScroll que hace exactamente lo explicado antes
- Consejo: para entender cómo funcionan sistemas como el dibujado de tilemaps de CPCtelera, mejor crearse un proyecto aparte para probar primero, antes de integrarlo en un proyecto propio
- Deduciendo los tiles distintos que puede tener un tileset a partir de la estructura de los datos: un byte sólo puede almacenar valores de 0 a 255
- Es muy importante entender los datos y su estructura en general como ingenieros
- Dudas sobre cómo calcular colisiones con los tilemaps
-- Cómo evitar comprobar valores uno a uno contra todos los IDs de tile colisionable: clasificar los tiles de forma que su codificación en bits nos describa sus propiedades
-- Otra posibilidad: usar un byte de atributos
- Duda sobre cómo calcular la posición de un tile dentro del array que representa un tilemap
-- Necesidad de realizar divisiones para calcular posición en tiles a partir de la posición X e Y en pixeles/bytes
-- Entendiendo las operaciones de división por la base en cualquier sistema de numeraciones
-- La base en cualquier sistema de numeración es 10
-- Utilizando desplazamientos para dividir por la base: entendiendo porqué se hace así
-- Entendiendo operaciones de multiplicación por una constante
-- Multiplicar por potencia de la base se hace con desplazamientos
-- Realizando multiplicaciones optimizadas por una constante cualquiera
- Otra alternativa para posición en tiles: precachear la posición y actualizarla en cada movimiento

Clase de Videojuegos 1 2019/20
Grado en Ingeniería en Multimedia
Universidad de Alicante