Ayuda porfavor

Started by Melow, May 01, 2010, 05:01:02 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

FreeYourMind

Me pides lo imposible, ni siquiera he descubierto porque me sale ese error todavia. Cuando lo encuentre y resuleva ya tendré mejor información para descubrir porque no falla en windows. Ya hablamos cuando descubra el bug (o mejor, del proceso al que estoy accediendo a sus variables estando este ya muerto).

SplinterGU

simplemente te estoy pidiendo un ejemplo en codigo compilable que reproduzca el error... y yo asi lo veo y te digo que y donde esta mal.

por otro lado:

1) no debes intentar acceder a variables de un proceso muerto, eso esta mal, y nada asegura que funcione
2) antes de intentar acceder a cualquier variable de cualquier proceso debes usar exists para asegurarte que ese proceso esta vivo en ese frame.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Splinter, que eso lo tengo claro, el tema del hilo no es buscar el motivo por el cual ocurre pero si porque en Windows no salta el error...
Habrá una explicación, cuando resuelva el error espero tenerlo mas claro.

SplinterGU

no es asi, pero ok, como quiera...

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

Drumpi

Pues supongo que será porque usas distintas versiones. Es posible que una use las signals instantaneas y la otra espere al frame, o que una versión ordene los procesos de una forma y otra de otra forma (en una el proceso muere antes que la comprobación de ese frame, y en la otra es al revés, se hace la lectura y después muere).

Comprueba los últimos signals que has puesto.
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)

DCelso

usa if exists antes de hacer nada con el id de un proceso y fijo que solventas el problema, y si no existe no hagas nada.

En cuanto a la funcion para ver si hay un objeto en determinada posición, no irá,  ya que necesitas al menos un frame para que se dibuje la imagen.

// Al llamarlo poner las coordenadas x e y del punto que quieres comprobar
FUNCTION comprobar(x,y)
BEGIN
     graph = new_map(2,2,16);
     map_clear(0,graph, rgba(255,255,255,0));
     frame;
     IF (collision (type algo)) //En algo con lo que quieres comprobar si coincide
     ...
     END
END

El problema es que siempre irás un frame retrasado :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

Quote from: Drumpi on April 11, 2011, 05:59:27 PM
Pues supongo que será porque usas distintas versiones. Es posible que una use las signals instantaneas y la otra espere al frame, o que una versión ordene los procesos de una forma y otra de otra forma (en una el proceso muere antes que la comprobación de ese frame, y en la otra es al revés, se hace la lectura y después muere).

Comprueba los últimos signals que has puesto.

en bennugd eso no es factible.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

Quote from: DCelso on April 11, 2011, 06:10:37 PM
usa if exists antes de hacer nada con el id de un proceso y fijo que solventas el problema, y si no existe no hagas nada.

En cuanto a la funcion para ver si hay un objeto en determinada posición, no irá,  ya que necesitas al menos un frame para que se dibuje la imagen.

// Al llamarlo poner las coordenadas x e y del punto que quieres comprobar
FUNCTION comprobar(x,y)
BEGIN
     graph = new_map(2,2,16);
     map_clear(0,graph, rgba(255,255,255,0));
     frame;
     IF (collision (type algo)) //En algo con lo que quieres comprobar si coincide
     ...
     END
END

El problema es que siempre irás un frame retrasado :D.

no tienes por que ir un frame retrasado... la cosa es que por cada proceso al que se le quiere acceder las variables, hay que chequear previamente al menos 1 vez si existe en cada frame.

y no tiene por que quedar retrasado.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

#23
Chicos, que me repito de nuevo, no os estoy pidiendo solución para el problema, eso ya lo tengo, solo era un pregunta por si eso podria ser distinto entre ports o haberse cambiado internamente entre versiones nada mas.

Hoy por fin el error ha saltado tambien en windows :)
El problema lo tengo resuelto (vamos se donde peta, aunque todavia no se al 100% porque ocurre y en que circunstancias se origina).

SplinterGU

lo tuyo era mas que una pregunta, era una pregunta con acusacion/afirmacion... de que habia algun cambio interno en linux que no afectaba a windows... y para responder esas cosas, hay que tener un caso de prueba, si vos no pones un caso de prueba que apoye lo que decis, entonces uno no puede hacer mucho por ayudarte o despejar tu duda.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

 ??? pero que estas contando ???