Prueba con motor de tiles

Started by Drumpi, October 27, 2011, 06:36:01 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

Hola a todos:

¿Sabeis ese punto en que no encuentras el fallo por más que lo buscas, y llegas a pensar que es cosa de tu máquina? Pues en ese punto estoy.
En mis (pocos) ratos libres, le estoy dando un vistazo a mi nuevo motor de scroll tileado, a ver si consigo que el Echo gane velocidad en las negritas, y he conseguido resolver muchos errores, pero hay algunos que me tienen mosqueado.

Uno de ellos es que, cuando llevas mucho rato, en lugar de tiles cuadrados de color rojo y azul (o algún número que se escapa por ahí, pero que está bien) me salen enormes rectángulos de colores morados y verdosos con figuras aleatorias... Bueno, parece que siguen algún tipo de patrón fractal, pero no es lo que debe salir.

El otro es que al salir, con la tecla ESC, en ocasiones me sale el mensaje "Deteniendo 3.3" y se cuelga antes de "Deteniendo 3.4" (es un FREE lo que falla).

El caso es que me gustaría que me confirmaseis que a vosotros también os pasa para no volverme loco ;D Sólo comprobarlo, si alguien quiere perder el tiempo en intentar dar soluciones, yo le estaría muy agradecido, pero no me hago responsable de las neuronas perdidas en el proceso (lo que se llega a complicar el código porque los módulos no son simétricos respecto al 0, y por trabajar con dos mapas cíclicos). ;D

Ah, sí, hay otro error que hace que se cuelgue. Creo haberlo localizado al cambiar de tile tanto horizontalmente como verticalmente, pero aun lo tengo que mirar. No le hagais caso (salvo que esteis con ganas de arreglar código).

Gracias por adelantado.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

laghengar

no te falta por meter en ese zip el mapa.h?
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

gecko

venia a decir lo mismo. No compila.
Torres Baldi Studio
http://torresbaldi.com

KeoH


Drumpi

Ups!!!

Pues nada, flash login para subirlo de nuevo (en el primer mensaje, lo he actualizado), y ahora a ver si puedo dejar de pensar en ello y dormir de una vez :P
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

laghengar

#5
Bien, mis pruebas con esto.

en la primera ejecución estuve trasteando con él, me dí cuenta que solo me hacía caso al presionar las teclas, o esa fué mi sensación, y de que no entiendo como funciona la zona de la derecha, y al salir se me cuelga antes del 3.4.

La segunda ejecución tal cual lo abro, lo cierro, ningún problema.

La tercera ejecución lo abro, muevo un poco las flechas, lo cierro, y ningún problema.

Bueno, en las siguientes ejecuciones el problema del principio y que comentas tú parece que sale de forma aleatoria. Hay veces termina bien, y hay otros que no, me he fijado de que cada vez que aparecen los recuadros verdes y tal el programa sufre un retardo. Y me da la impresión de que cada vez que tiene un retardo, da el error al salir.

Me he fijado que siempre está la misma imagen de filas y columnas, recuadros rojos, trianglos rojos, azules y negros, y algunas flechas.

actualización: Parece ser que si cierras el programa sin tocar nada, siempre cierra bien.
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

Fede

 Corroboro que el crack es pseudo aleatorio. Y que más o menos me hace lo mismo que ha laghergar.


Ahora bien, si en la línea 652 del documento 'graph_tsroll.inc' aumento la cantidad de memoria asiganada a '[ts_struct].ts_screen_tiles' en 21, ya no se me cuelga. Con 20 sí.


La línea quedaría asi:


         [ts_struct].ts_screen_tiles=alloc(([ts_struct].ts_max_screen_tiles+21)*(sizeof(int)));

Seguro que esto es un parche, pero a ver si te sirve de pista.
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

laghengar

Quote from: Fede on October 29, 2011, 08:44:36 PM
Corroboro que el crack es pseudo aleatorio. Y que más o menos me hace lo mismo que ha laghergar.


Ahora bien, si en la línea 652 del documento 'graph_tsroll.inc' aumento la cantidad de memoria asiganada a '[ts_struct].ts_screen_tiles' en 21, ya no se me cuelga. Con 20 sí.


La línea quedaría asi:


         [ts_struct].ts_screen_tiles=alloc(([ts_struct].ts_max_screen_tiles+21)*(sizeof(int)));

Seguro que esto es un parche, pero a ver si te sirve de pista.

Cierto, al copiar lo que has hecho tú, ya no se me bloquea y además no aparecen los recuadros extraños. Y si pongo 20, aunque no aparezcan los recuadros extraños tiene esas partes con retardo y se bloquea al salir.
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

Drumpi

Y tan buena pista: 20 es un valor MUY significativo en la prueba (el número de columnas que se dibujan) y he podido rastrear la fuente del error. Había comprobado que no me salía de la memoria reservada, pero en cuanto me has dicho eso, he analizado la fila y la columna  respecto al total y he encontrado el fallo: un miserable y puñetero signo mal (un > en lugar de >=).

Muchísimas gracias a los dos. Reparto de Karmas.

Y menos mal, porque pensaba que mi ordenador se me había rebelado y se negaba a funcionar :D :D :D
Pero aun no está terminado: de vez en cuando se le va la pinza y pinta otra parte del mapa, sobre todo alternando movimiento horizontal y vertical (se ve que aun no he "sincronizado" ambos movimientos, debe haber alguna variable que se está modificando de mala manera).

Laghengar: el cuadrado de la derecha es el mapa sobre el que voy dibujando los tiles, luego uso ese mapa sobre un scroll de Bennu, que he puesto como cíclico horizontal y verticalmente. Os subo la versión arreglada, con un mapa más claro, para que entendais el funcionamiento (explicarlo sería un poco largo).
Lo bueno de este sistema es que se beneficia del motor de Bennu, que sólo dibuja una fila o columna de tiles, que usa la memoria del mapa del tamaño algo más grande que la pantalla, y que el puntero ese que daba problemas actúa como los dirty-rects, reduciendo aun más los tiles a dibujar.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)