10 de septiembre de 2013

Bug inesperado!



Ha aparecido un bug cuando menos lo esperaba (suele pasar).

El diseño de la rutina de Render, está basado en líneas y los gráficos con unos tamaños y posición en pantalla escalables... Inicialmente empecé con unos "cuadros" de 32x32px, y a medida que iba incorporando los gráficos (miden 20x20), iba ampliando el tamaño de los "cuadros"...

Los mapas también son diferentes en tamaño por lo que tras cargar un mapa, tengo una rutina que redistribuye y recalcula la posición de todo el mapa en pantalla.

Pues bien, todo iba perfectamente cuando este fin de semana, probando una combinación de gráficos de 30x30 pixels (he decidido aumentar un poquito los gráficos) y "cuadros", la aplicación se cerraba de golpe... con esta cara -> :O me he quedado, pues la rutina de pintado del mapa combianada con la de detección del "touch" es una parte en la que más he trabajado... y que teóricamente funcionaba a la perfección...

Viendo que no he sido capaz de averiguar PORQUE el programa se cierra, he decidido reescribir completamente la parte de dibujado del mapa y la parte de detección de "touch".... así que no os cuento las horas que he echado comprobando la nueva rutina, que sea dicho de paso, ahora está escrita usando la mitad de variables, NO casca con ninguna combinación de mapa/medidas de escala, etc... y lo mejor, es más rápida...

Total, ahora a "empalmar" todo lo que funcionaba con el anterior "main loop" con el nuevo...

2 comentarios:

mentalthink jim dijo...

Coño que raro, parece un error de máquina de 8 bits cuando no entienden bien el ASM y las posiciones de memoria...

TheHark0 dijo...

Algo de la asignación de datos en las matrices de los mapas... pero no fuí capaz de encontrar PORQUE... !?!?!

Afortunadamente, ya está solventado. ;D