Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: UnMandrango on May 26, 2010, 03:04:21 PM

Title: Duda con Signal()
Post by: UnMandrango on May 26, 2010, 03:04:21 PM
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!
Title: Re: Duda con Signal()
Post by: panreyes on May 26, 2010, 03:27:30 PM
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.
Title: Re: Duda con Signal()
Post by: UnMandrango on May 26, 2010, 03:34:30 PM
Muchas gracias PiXeL, ya esta solucionado!  :)
Title: Re: Duda con Signal()
Post by: Fede on May 26, 2010, 03:58:59 PM
Estooooo, ¿Quieres matar zombis?  ;D

¡Ah! Y también bienvenido.  ;D
Title: Re: Duda con Signal()
Post by: SplinterGU on May 26, 2010, 06:21:56 PM
bienvenido!
Title: Re: Duda con Signal()
Post by: FreeYourMind on May 26, 2010, 08:05:14 PM
Welcome to the DOOM!
Title: Re: Duda con Signal()
Post by: UnMandrango on May 26, 2010, 09:10:57 PM
Gracias a todos por la bienvenida, tranquilos que ya os dare la tabarra...  ;D
Title: Re: Duda con Signal()
Post by: 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.
Title: Re: Duda con Signal()
Post by: SplinterGU on May 27, 2010, 06:10:42 AM
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
Title: Re: Duda con Signal()
Post by: Drumpi on May 27, 2010, 03:00:37 PM
¿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
Title: Re: Duda con Signal()
Post by: UnMandrango on May 27, 2010, 05:44:04 PM
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
Title: Re: Duda con Signal()
Post by: panreyes on May 27, 2010, 05:48:47 PM
Tratármelo bien, que igual se viene a PiX Juegos xD
Title: Re: Duda con Signal()
Post by: Windgate on May 27, 2010, 11:39:11 PM
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
Title: Re: Duda con Signal()
Post by: Drumpi on May 28, 2010, 12:48:20 AM
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.