[Sesión 7.5]: Tras tener un sistema de colisiones operativo, realizamos el algoritmo para comprobar colisiones entre 2 entidades cualesquiera, con sus Bounding Boxes. Revisamos las bases matemáticas de la comprobación de colisiones a partir de proyecciones sobre los ejes.
Contenidos Detallados:
- Analizamos las posibilidades de que 2 intervalos cualesquiera no colisionen en una dimensión
- Describimos matemáticamente cómo realizar las comparaciones oportunas para saber si dos intervalos no colisionan
- Entendemos bien los casos y su implicación
- Calculamos los puntos que deben ser analizamos según nuestros datos
- Pasamos las matemáticas a código paso por paso, entendiendo las transformaciones matemáticas en cada paso. El código final queda mucho más simple gracias al razonamiento matemático
- Reflexionamos sobre los flags a utilizar para la comprobación de la condición que estamos tratando
- Entendemos diferencias importantes entre el flag S (Sign) y el flag C (Carry). Potenciales usos y problemas asociados
- Tras haber hecho la comprobación de un caso, procedemos al siguiente de la misma manera
- Comprobamos el funcionamiento de nuestras colisiones sobre un único eje pintando un par de píxeles en cada caso
- Entendemos que el código que hemos hecho es en un eje y que en los demás ejes es homomórfico, por lo que basta con copiar/pegar y sustituir los datos del eje y, ya que es idéntico.
- Revisamos lo importante que es el razonamiento matemático para poder producir un código de calidad en estos casos
- Explicamos teóricamente otras variantes del uso de Bounding Boxes para mejorar nuestra detección de colisiones:
-- Uso de varios Bounding boxes para distintas partes de un sprite
-- Uso de jerárquico de Bounding Boxes
- Tras haber implementado las colisiones entre 2 entidades, analizamos como realizar las colisiones entre todas las entidades del sistema recorriendo el array
- Analizamos como evitar comprobar colisiones innecesarias, con la forma de recorrer el array
- Vemos una optimización para muchas entidades: tenerlas ordenadas por una coordenada nos permite descartar rápidamente colisiones con entidades que están alejadas
- Analizamos la ventaja de tener un array ordenado y el coste potencialmente mínimo de mantener el orden prestando atención a los cambios locales de movimiento
Clase de Razonamiento Automático 2019/20
Grado en Ingeniería en Informática
Universidad de Alicante
Contenidos Detallados:
- Analizamos las posibilidades de que 2 intervalos cualesquiera no colisionen en una dimensión
- Describimos matemáticamente cómo realizar las comparaciones oportunas para saber si dos intervalos no colisionan
- Entendemos bien los casos y su implicación
- Calculamos los puntos que deben ser analizamos según nuestros datos
- Pasamos las matemáticas a código paso por paso, entendiendo las transformaciones matemáticas en cada paso. El código final queda mucho más simple gracias al razonamiento matemático
- Reflexionamos sobre los flags a utilizar para la comprobación de la condición que estamos tratando
- Entendemos diferencias importantes entre el flag S (Sign) y el flag C (Carry). Potenciales usos y problemas asociados
- Tras haber hecho la comprobación de un caso, procedemos al siguiente de la misma manera
- Comprobamos el funcionamiento de nuestras colisiones sobre un único eje pintando un par de píxeles en cada caso
- Entendemos que el código que hemos hecho es en un eje y que en los demás ejes es homomórfico, por lo que basta con copiar/pegar y sustituir los datos del eje y, ya que es idéntico.
- Revisamos lo importante que es el razonamiento matemático para poder producir un código de calidad en estos casos
- Explicamos teóricamente otras variantes del uso de Bounding Boxes para mejorar nuestra detección de colisiones:
-- Uso de varios Bounding boxes para distintas partes de un sprite
-- Uso de jerárquico de Bounding Boxes
- Tras haber implementado las colisiones entre 2 entidades, analizamos como realizar las colisiones entre todas las entidades del sistema recorriendo el array
- Analizamos como evitar comprobar colisiones innecesarias, con la forma de recorrer el array
- Vemos una optimización para muchas entidades: tenerlas ordenadas por una coordenada nos permite descartar rápidamente colisiones con entidades que están alejadas
- Analizamos la ventaja de tener un array ordenado y el coste potencialmente mínimo de mantener el orden prestando atención a los cambios locales de movimiento
Clase de Razonamiento Automático 2019/20
Grado en Ingeniería en Informática
Universidad de Alicante
Colisiones entre bounding boxes [#ASM #Z80] 6502 instruction set | |
12 Likes | 12 Dislikes |
82 views views | 2.28K followers |
Education Creative Commons Attribution licence (reuse allowed) | Upload TimePublished on 14 Oct 2019 |
Không có nhận xét nào:
Đăng nhận xét