si, las rotaciones y el size afectan el tamaño del area de colision, la cosa es simple, rotas un grafico y los extremos del grafico (no solo el era pintada, sino que se incluye el area transparente), y por cada extremo trazas rectas y paraleleas de 90° y 180°, con respecto a los ejes x e y de la PANTALLA.
el tema de que no se veia el grafico de 1px de ancho, ya se soluciono, ahora que sea vea segun la rotacion de 1px mas, a simple vista me parece que sigue, pero eso es por los calculos,
yo sigo pensando que no es importante la mejora, si se pudiese evitar todo el tema de las rotaciones, escalado y resolution, este tipo de colisiones seria muy rapido.
quizas se podria implementar un par de funciones que no consideren estos valores, algo asi como un collision_circle_fast y collision_box_fast, que se basen solamente en el alto y ancho del grafico con respecto a su centro, sin chequear rotaciones, escalado ni demas cosas, quizas el resolution no afecta mucho.
tambien quiza estas funciones puedan tener un parametro extra que indique radio de accion de la colision o quizas agregar una variable local que indique radio de accion para casos de colision circular y podria ser alto y ancho para casos box.
no esta mal, y creo que esto ameritaria un modulo de colisiones exclusivos, y para evitar el problema de lo que ya esta hecho (que usa mod_grproc), puedo hacer que mod_grproc cargue automaticamente este nuevo modulo (dependencia), y asi seria transparente para lo que ya actualmente lo use.
lo que tambien afecta mucho es el comparar en cada collision toda la lista de procesos (en el caso del type, si hay muchos de este tipo, o de collision ALL_PROCESS), collision directo a un proceso, supongo que va muy rapido, pero tambien lo ira en el collision normal.
la cosa es que estuve pensando, y no se puede hacer un cache de las colisiones, ya que uno de los procesos que previamente fue chequeado por colision en otro proceso, en el actual proceso pudo haber cambiado sus datos, por ende, no se puede asumir que la info anterior es valida.