Problemas con unas colisiones.

Started by Yawin, November 24, 2010, 04:29:26 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Yawin

Bueno, la cosa es que estoy haciendo el boss final de mi juego, y me dan un problema las colisiones. La colisión del boss con la nave, lo detecta perfectamente; pero, la colisión con las balas, no.

http://pensarescompartir.com/lahsoft/lahsoftcorp/?direc=fenix/&id=Demo_boss_final.rar

¿Qué puede ser?

global
int graficos, pnav, pbos;
end
process Main()
begin
set_mode(640,480,32,MODE_FULLSCREEN);
set_fps(60,1);
graficos=load_fpg("dll\prueba.fpg");

pbos=boss();
pnav=naveesp();
bossom();

loop
frame;
end
end

process boss()
private
int vida;
int ID_Disparo_acertado;
begin
x=320;
y=240;
z=5;
graph=22;
Vida=20000;
loop
ID_Disparo_acertado=collision(type disparog);
if (ID_disparo_acertado !=0)
vida=vida-1;
end
if(collision (type naveesp))
end
frame;
end
end

process bossom()
private
int i,j=0,aux;
end
begin
graph=20;
x=320;
y=240;
loop
frame;
end
end

process naveesp()
private
int cont=15;
end
begin
x=320;
y=380;
graph=2;
write_var(0,51,50,1,angle);

loop
if (key(_up)) y-=7; end
if (key(_down)) y+=7; end
if (key(_left)) x-=7; end
if (key(_right)) x+=7; end
if (x>627) x=627; end
if (x<13) x=13; end
if(y>470) y=470; end
if(y<10) y=10; end
angle=get_angle(pbos);

if (key(_x))
if(cont>15)
disparog(X,Y,angle,4,4);
disparog(X,Y,angle-100,4,4);
cont=0;
else
cont++;
end
end

if(!collision (type boss))
advance(3);
end
frame;
end
end

process disparog(x,y,angle,int vel,graph)
begin
repeat
advance(vel);
frame;
until(y>480 or x < -20 or x > 670 or y<-20)
end
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

NesKy

#1
A primera vista, creo que no has puesto un "IF (collision (type boss))" en el proceso disparog().

Veo que en el proceso boss() sólo le has asignado el valor a ID_Disparo_acertado, pero no veo la condición. No sé si me explico... :D


Nada, en la línea de debajo ya lo dices.

Yawin

Vale, tema resuelto. Si colisionaban. Pero se me olvidaba poner:
signal(ID_Disparo_acertado,s_kill);

jajaja
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end