Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: _anubys_ on October 07, 2015, 01:52:09 PM

Title: Problema con colisiones
Post by: _anubys_ on October 07, 2015, 01:52:09 PM
Buenas, tengo un problema con las colisiones y no consigo que me funcione, os paso el codigo por si me podeis echar una mano, Gracias

process maletin()
begin
graph=20;
x=50;
y=100;
loop
end
frame;
end
end
process puntero()
begin
mouse.graph=2;
loop
if (mouse.graph=2 and (collision(type maletin)));
write(0,0,0,0,"colision maletin:");
Title: Re:Problema con colisiones
Post by: panreyes on October 07, 2015, 02:04:43 PM
Briconsejo: No uses colisiones con el ratón directamente, utiliza un proceso intermedio.

process puntero()
begin
graph=2;
loop
  x=mouse.x;
  y=mouse.y;
  frame;
end
end
Title: Re:Problema con colisiones
Post by: _anubys_ on October 08, 2015, 12:19:45 PM
Creo que me he explicado mal, ya tengo un proceso intermedio que es puntero() pero yo lo que necesito es detectar la colision del puntero con un objeto como en un juego point to click, por lo que necesito que me funcione la colision del proceso maletin con el proceso puntero, o al reves me es indiferente.

Si meto yo las coordenadas a mano en el proceso me funciona pero entonces ¿para que necesito la colision?

process maletin()
begin
graph=20;
x=50;
y=100;
loop
if (collision(type puntero)) write(0,0,0,0,"colision maletin:");
end
frame;
end
end
process puntero()
begin
mouse.graph=1;
loop
if (mouse.right==true);
mouse.graph=mouse.graph+1;
if (mouse.graph==4 and (mouse.right==true))
mouse.graph=1;
end
end
frame;
frame;
end
end

Gracias por a respuesta y perdón por no expresarme bien.
Title: Re:Problema con colisiones
Post by: warrior_rockk on October 08, 2015, 01:07:00 PM
Muy sencillo. No te funciona la colisión con puntero porque, como bien dice Pixel, tienes que refrescar dentro del loop de puntero las coordenadas del proceso puntero a las del raton ( x = mouse.x; y = mouse.y;) porque, sólo por asignarle el mouse.graph no quiere decir que el proceso puntero se convierta en el ratón directamente. Tienes que ir actualizando las coordenadas.