Nueva variable local predefinida: collision_graph

Started by panreyes, August 21, 2012, 07:30:54 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

KeoH

no me refiero a obtener la posicion de esos puntos de otro grafico del proceso ... sino obtener esos puntos de un proceso desde otro proceso. En vez de que esa funcion de la posicion de los puntos de su proceso llamador, que lo haga de cualquier proceso cuya id se le de como parametro. ¿Como podría hacerse eso? Imagina que tengo un proceso que se dedica exclusivamente a poner estrellas en  la posicion de la cabeza de los enemigos, primero tengo que saber donde esta exactamente la cabeza del bicho q tendra un punto de control en cada grafico del personaje. No se xDD imagina eso xDD

SplinterGU

Quote from: KeoH on August 21, 2012, 10:01:50 PM
no me refiero a obtener la posicion de esos puntos de otro grafico del proceso ... sino obtener esos puntos de un proceso desde otro proceso. En vez de que esa funcion de la posicion de los puntos de su proceso llamador, que lo haga de cualquier proceso cuya id se le de como parametro. ¿Como podría hacerse eso? Imagina que tengo un proceso que se dedica exclusivamente a poner estrellas en  la posicion de la cabeza de los enemigos, primero tengo que saber donde esta exactamente la cabeza del bicho q tendra un punto de control en cada grafico del personaje. No se xDD imagina eso xDD

primero no hay otros graficos de 1 proceso, hay graficos, que no pertenecen a ningun proceso, tu los asignas segun necesitas.

ahora, suponiendo que pid es el proceso que quiero obtener el punto de control, entonces


x=pid.x
y=pid.y
graph=pid.graph
flags=pid.flags
get_real_point....

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

panreyes

Quote from: SplinterGU on August 21, 2012, 09:58:22 PM
asi es, si quieres de otro grafico, debes cambiar la variable graph antes de llamar a la funcion.


Esto no me vale para todos los casos, porque si compruebo la colisión desde otro proceso el cambio de gráfico no me sirve :\


¿Tan mala idea sería implementar algo así? ¿Cuántos de nosotros utilizamos subprocesos para máscaras colisionables y cuántos árboles habremos matado ya con tanta CPU malgastada? xD

SplinterGU

#18
Quote from: PiXeL on August 30, 2012, 10:00:52 AM
Quote from: SplinterGU on August 21, 2012, 09:58:22 PM
asi es, si quieres de otro grafico, debes cambiar la variable graph antes de llamar a la funcion.


Esto no me vale para todos los casos, porque si compruebo la colisión desde otro proceso el cambio de gráfico no me sirve :\


¿Tan mala idea sería implementar algo así? ¿Cuántos de nosotros utilizamos subprocesos para máscaras colisionables y cuántos árboles habremos matado ya con tanta CPU malgastada? xD

como que no se puede hacer? si se puede cambiando el grafico y demas variables y luego restaurarlo.

la filosofia es que los procesos procesen cosas de si mismo... implementar esa funcion se puede, pero puede llegar a dar problemas de deathlock... no es la primera vez que esto se propone, incluso creo que lo has propuesto tu tambien, y ya explique en su momento que problemas podria dar esto.

edit: me quede colgado con lo de la funcion... pero ahora, el titulo propone "nueva variable collision_graph", no estas hablando de collision_x, collision_y, etc... asi que tranquilamente puedes switchear la variable graph para hacer una colision con un grafico diferente antes del frame...

no veo el problema... en base a la propuesta, seria solo 1 variable...

algo asi


local
    collision_graph;
end

#define SAVE_GRAPH_FOR_COLLISION(x) collision_graph=graph; graph = x;
#define RESTORE_GRAPH_FOR_COLLISION() graph=collision_graph;

...
    SAVE_GRAPH_FOR_COLLISION(<aca pongo collision_graph>)
...
    haces el collision aca
...
    RESTORE_GRAPH_FOR_COLLISION()
...



entre save y restore no debes usar frame y solo 1 vez usar SAVE a menos que uses restore antes.

no le veo problema de cpu, son 3 asignaciones de variables.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

JaViS

Quote from: SplinterGU on August 30, 2012, 03:35:11 PM

la filosofia es que los procesos procesen cosas de si mismo... implementar esa funcion se puede, pero puede llegar a dar problemas de deathlock... no es la primera vez que esto se propone, incluso creo que lo has propuesto tu tambien, y ya explique en su momento que problemas podria dar esto.



Me quede pensando en eso que decis y me gustaria saber cuales son esos problemas que mencionas, porque tengo que admitir que yo también pense en mas de una vez porque no se puede consultar muchas cosas sobre un proceso desde otro proceso, como por ejemplo, colisiones, puntos de control, etc.


Gracias!
Working on Anarkade. A couch multiplayer 2D shooter.