Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Gabysantof on September 06, 2023, 03:34:47 AM

Title: Colisión de un sprite contra un objeto dibujado.
Post by: Gabysantof on September 06, 2023, 03:34:47 AM
Estoy intentando una pequeña prueba donde tengo un "heroe" que puede caminar sobre la pantalla libremente... pero cuando choca con una linea debería no poder avanzar más en esa direccion... por el momento solo quiero un cartel que diga "colision" pero no me está funcioando... nunca tuve problemas para colisionar un sprite con otro, pero nunca había intentando con un proceso que solo dibuja una linea... se puede hacer esto??

process lineaAbajo()
begin
z= -10;
x=100;
   while ((!key(_esc)) AND (!key(_s)))
   x+=1;
   if (collision_box (type heroeCamina))   
         write(0,SCREEN_WIDTH-250,SCREEN_HEIGHT-10,3,"colision");
   end
   
   drawing_z(-10);
   drawing_color(rgb(243,159,24));     
   draw_line( x , x ,  640 , 400 );
   frame;
   end
end
Title: Re: Colisión de un sprite contra un objeto dibujado.
Post by: Drumpi on September 07, 2023, 10:27:36 AM
No, lo que estás haciendo no es correcto.
Los procesos colisionan con otros procesos, eso sí está bien, pero cada proceso necesita tener asignado un gráfico. En tu caso, lineaAbajo no tiene asignado un graph, por lo que el gráfico del prota no puede colisionar con el gráfico de lineaAbajo.

En tu caso, puedes asignarle un gráfico creado en tiempo de ejecución con new_graph... pero ojo, estás empleando drawing_z, drawing_color y draw_line sin asignar sobre qué gráfico lo estás haciendo (o al menos, no se ve en ese código), por lo que lo que estás pintando se hace sobre el graph=0 del file=0, o sea, el fondo de la pantalla.

Ojo con los new_graph, recuerda descargarlos cuando dejes de usarlos o se quedarán en memoria.

Si te quieres poner creativo y no estar usando funciones draw*, puedes crear un gráfico de 1 pixel de color rojo, y usar size_x o size_y para crear una línea con la que colisionar... y si te pones exquisito, usar angle para rotarla, y cuando termines, poner el alpha a 0 para que no se vea y siga usando la colisión.
Title: Re: Colisión de un sprite contra un objeto dibujado.
Post by: Gabysantof on September 12, 2023, 01:34:26 AM
Muchas gracias Drumpi!!
Si. Voy por el sprite de 1 pixel y listo. Más Fácil. La idea era tener un límite en el dibujo para que el protagonista no pueda cruzar y armar un camino por el cual transitar. Estoy armando (muy de a poco) un beat em up. Gracias!!
Title: Re: Colisión de un sprite contra un objeto dibujado.
Post by: Drumpi on September 18, 2023, 01:44:19 PM
Ok, que tengas suerte.
De todas formas, considera el uso de mapas de durezas en lugar de colisiones, para marcar el camino por donde pueda ir el protagonista. En eso, Bomberlink te puede ayudar mejor que yo, ya que tiene experiencia en el SoRR.