Duda con Signal()

Started by UnMandrango, May 26, 2010, 03:04:21 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

UnMandrango

Bueno este es mi primer post, no conocia Bennu, estoy trasteando con él y parece muy interesante. Ahora estoy siguiendo el manual de Oscar Torrente, muy bueno por cierto, pero estoy realizando el ejemplo de matamarcianos y tengo un problema a ver si me podeis aclarar:

Resulta que cuando en los enemigos detecto si ha colisonado con un disparo, le mando un signal al proceso disparo en cuestion para eliminarlo y luego destruyo el enemigo. Asi:

process enemigo (x,int inc_x,int inc_y)
private
int ID_disparo_acertado;
end
begin
graph=4;
size=rand(65,115);
y=-40;
z=2;
repeat
x=x+inc_x;
y=y+inc_y;
if (ID_Disparo_acertado=collision(type disparo) !=0)
signal(ID_disparo_acertado,s_kill);
break;
end
frame;
until (y > 520)
end


La cosa esta en que nose porque me mata tambien el proceso padre del disparo, la nave del jugador, y claro entonces ya no puedo seguir jugando ni disparando... Hay que especificar algo mas en el signal para que solo mate el proceso en cuestion y no su padre.

Espero haberme explicado bien, un saludo y gracias!

panreyes

Prueba esto. También te he hecho algunos cambios para que veas lo que también permite Bennu :)

process enemigo (x,inc_x,inc_y)
private
ID_disparo_acertado;
end
begin
graph=4;
size=rand(65,115);
y=-40;
z=2;
repeat
x+=inc_x;
y+=inc_y;
if (ID_Disparo_acertado=collision(type disparo))
signal(ID_disparo_acertado,s_kill);
break;
end
frame;
until (y > 520)
end


Me explico:
Lo que hacías era esto:
if (ID_Disparo_acertado=collision(type disparo) !=0)
Que equivale a esto:
1. Comprobar colisión
2. Comprobar que la función haya devuelto algo que no sea 0
3. Asignar la resolución del punto 2 a ID_Disparo_acertado
Ergo: No conseguías el ID del disparo, sino que conseguías un id entre 0 y 1 creo.

UnMandrango

Muchas gracias PiXeL, ya esta solucionado!  :)

Fede

Estooooo, ¿Quieres matar zombis?  ;D

¡Ah! Y también bienvenido.  ;D
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.

SplinterGU

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

FreeYourMind


UnMandrango

Gracias a todos por la bienvenida, tranquilos que ya os dare la tabarra...  ;D

Drumpi

¿Puedo torturar a este novato o tambien lo vais a proteger? ;D
Bienvenido, pasa y ponte cómodo.
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)

SplinterGU

Quote from: Drumpi on May 27, 2010, 01:58:34 AM
¿Puedo torturar a este novato o tambien lo vais a proteger? ;D
Bienvenido, pasa y ponte cómodo.

es increible, ven carne fresca y ya le quieren incar los dientes en la yugular... :D
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

¿Que hincar dientes? quita, quita, que el último casi me salta un empaste con la carne tan dura que tenía.
A ver si ahora me dejais arrancar un brazo o algo así antes de llamar a los antidisturbios ;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)

UnMandrango

Miedo dais... esto parece algun tipo de ritual de iniciacion para entrar en la secta "Programadores Canivales"  :D

A ver si al final soy yo el que le pega un bocao a alguien, xD

panreyes

Tratármelo bien, que igual se viene a PiX Juegos xD

Windgate

Oh, no sé si dije en su día que ese método de eliminación de disparos impactados estaba pendiente de añadir en mi tutorial... A ver si este Verano me sobra el tiempo para eso y más xD
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

Drumpi

Ah, vale, si viene avalado por Pixel, entonces dejo la broma para el siguiente (por una vez que me apetecía espantar a alguien ;D).

PD: hoy estoy de mejor humor (he conseguido compilar), así que lo mismo mañana le meto caña al escaner y subo el test de las tiras cómicas en el nuevo formato, a ver qué os parece.
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)