Fallo de segmentacion/Excepcion de coma flotante

Started by Mr Matsusaka, March 27, 2010, 09:45:34 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Mr Matsusaka

En determinado proyecto me saltan los siguientes errores:
"Fallo de segmentacion"
"Excepcion de coma flotante"
A veces me salta uno y a veces me salta el otro.

El fallo de segmentacion me salta tras cargar un fpg determinado y llega al frame;... Determinado fpg se carga en otra parte del programa sin ningun problema, pero en este caso salta el error.

No creo que sea un error del fpg, sino de algo que hago antes que corrompe el sistema o algo. ¿Alguien tiene una pista de lo que puede ser y de cuando saltan determinados errores?

A parte de eso tengo otro fallo, llamo un scroll y le digo que se mueva,
[code language="bennu"]    loop
        frame;
   if (estado==0 and paso==1)
            start_scroll(1,fich_select,201,200,0,12); estado=1;
        end
   if (paso%2==0)
       scroll[1].x1+=1; scroll[1].y1+=1;
   end
    end[/code]

pero no funciona... Sospecho que esta relacionado con el error anterior.

DCelso

Monstruos Diabólicos

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

Mr Matsusaka

paso nunca vale 0, pues hay un paso++ antes de llamar al scroll (aunque en ese trozo de codigo no lo he puesto). De todos modos he probado y no parece ser eso...

DCelso

entonces puede ser que estado valga 1.
A ver lo que puede estar dándote el problema de sementación es intentar ejecutar esto  scroll[1].x1+=1; scroll[1].y1+=1;
antes que esto otro  start_scroll(1,fich_select,201,200,0,12); estado=1;

O bien que fich_select sea 0,  o que las imagenes 201 y/o 200 no existan en ese fpg.
Monstruos Diabólicos

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

Mr Matsusaka

He sacado del loop el start_scroll y sigue igual. Los graficos y el file existen pues aparecen en pantalla. El problema esta en que no se mueven...

Que significa eso de la segmentacion?

DCelso

pues eso pasa por intentar acceder a memoria no reservada o no inicializada, normalmente por usar un puntero mal.
Monstruos Diabólicos

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

BoMbErLiNk

Hace siglos que no uso el scroll interno, pero scroll[1] no sería tratar de mover la segunda capa en lugar de la primera (scroll[0]) ?

Recuerdo que habia que definir scroll.ratio, si lo tienes a 0 puede que de ahí te venga la crugida al tratar de moverlo manualmente, o de que simplemente no se mueva.

El "segmentation fault" lo he visto yo en muchos casos, por una division entre 0 (generalmente te decia otra cosa), por ponerle -1 a un graph, por matar a un padre cuando el hijo accede, por poner demasiadas strings en el programa (esta última corrompe hasta los graficos generando basura y petadas por todos lados)..

DCelso

Puede,
he estado mirando el primer test del bennupack con cuatro scrolls y va perfecto.
te lo adjunto para que examines la parte del scroll.
Monstruos Diabólicos

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

DCelso

¿has probado a poner otro valor distinto de 12?, por ejemplo 15 o 0.
Monstruos Diabólicos

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

Mr Matsusaka

Era la jilipollez mas grande que me pudiese imaginar.  :P
Sencillamente habia olvidado llamar al stop_scroll depues de esa pantalla, y entraba en conflicto con un scroll nuevo al que llamo mas tarde

Aun asi el primer scroll sigue sin moverse... Pero ya es un fallo menor.

Gracias por la atencion y perdonad la molestia.

Drumpi

No se, yo lo único raro que veo es que, además de no usar el scroll 0 (usas el 1 pero da igual), mueves scroll.x1 y scroll.y1 cuando el primer plano es scroll.x0 y scroll.y0, si estas intentando que se mueva sólo el segundo plano, creo que había que desactivar lo de scroll.ratio o similar.
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)

Windgate

Sí, hay que poner el scroll.ratio = 0 para poder manipular su posición. Lo han dicho por ahí arriba pero parece que ha sido sepultado por otras respuestas :D
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Mr Matsusaka

Pues era eso! Dios os lo recompense con 100 hijos  :D

Drumpi

Quote from: Windgate on March 29, 2010, 06:56:20 AM
Sí, hay que poner el scroll.ratio = 0 para poder manipular su posición. Lo han dicho por ahí arriba pero parece que ha sido sepultado por otras respuestas :D

Pues si, Bomber nos va a hacer un down+b cinco veces seguidas ;D
De todas formas, creo que lo leí por encima, y que no había funcionado.

Quote from: Mr Matsusaka on March 29, 2010, 08:39:45 AM
Pues era eso! Dios os lo recompense con 100 hijos  :D

Mira que tienes mala leche :D :D :D
A ver si te voy a desear una novia ninfómana para que estés todo el día... pero todo el día... ;D
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)