es valido hacer: collision_box(type mouse)???

Started by alicesimu, November 05, 2016, 01:27:11 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

alicesimu

holaa


necesito comprobar la colision grafica de un proceso,
en vez de colisionar 2 procesos, uno de ellos se trata del mouse

si del raton, del puntero del raton coordendas del punto de control 0.

y me pregunto si es valido asi:
collision_box(type mouse);

y otra pregunta:
existe una manera de hacerlo SOLO por coordenadas?
collision_box(mouse.x,mouse.y);

:(

----------------
Se me ocurrre usar esto:

INT box_x0   - The x-coordinate of the topleft corner of the process' graphic (process.x-graphic.width/2).
INT box_y0   - The y-coordinate of the topleft corner of the process' graphic (process.y-graphic.height/2).
INT box_x1   - The x-coordinate of the bottomright corner of the process' graphic (process.x+graphic.width/2).
INT box_y1   - The y-coordinate of the bottomright corner of the process' graphic (process.y+graphic.height/2).

para hacer una comprobacion por caja/box, y hacer la condicion:

if(Reserved.box_x0<mouse.x and Reserved.box_x1>mouse.x);
if(Reserved.box_y0<mouse.y and Reserved.box_y1>mouse.y);


-----------
Ahh mierda, me da error de compilacion!!
error: Unknown identifier ( error in token: "BOX_X0" ).
:'( :'( :'(

panreyes

Tengo entendido que sí, pero siempre es más cómodo hacer las colisiones con un proceso que tenga siempre la posición del ratón

alicesimu

Quote from: panreyes on November 05, 2016, 09:50:03 PM
Tengo entendido que sí, pero siempre es más cómodo hacer las colisiones con un proceso que tenga siempre la posición del ratón

LOL con un proceso?? copiais las cordenadas de mouse.x mouse.y y lo aplicas al proceso?

En DIV2, poniendo COLLISION(TYPE mouse);
le daba por buena, con colision con su punto de control central 0.

Futu-block

Yo uso un sistema de mi invencion que puede que te sirva; Uso una funcion que me divide la pantalla en una cuadricula, al clicar en un punto divide la x/y del raton y te devuelve la casilla correspondiente, ya sea por numero o por coordenada (casilla 8,5 por ejemplo)

No se si es eso lo que necesitas

Drumpi

El collision (type mouse) funciona en BennuGD, no la liemos. Realiza la comprobación entre cualquier pixel > 0 del proceso que lo llama, y sólo con el punto central del ratón (no colisiona mouse.graph, sólo el "hotspot" del mismo). Es más, creo que mouse no necesita ni siquiera graph para colisionar, pero intenta probarlo :D
También funciona collision_box (type mouse), y con cualquier type (nombredeproceso) que quieras.

Si quieres que colisione con el gráfico del ratón, tendrás que crear un proceso aparte que siga al ratón con muy alta prioridad.
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)

panreyes

Lo que dice Drumpi es lo que pensaba yo. Collision mouse solo comprueba el punto central del ratón, no el gráfico que tenga asignado

alicesimu

Quote from: panreyes on November 07, 2016, 01:14:51 PM
Lo que dice Drumpi es lo que pensaba yo. Collision mouse solo comprueba el punto central del ratón, no el gráfico que tenga asignado

Si es lo que creo la en la teoría.
Y juraría que es obligatorio asignar algún grafico al mouse.graph para que colisión(type de por buena la colisión únicamente por el punto central 0 .no por si el grafico como los procesos.

Drumpi

No lo sé, pero te animo a que lo compruebes... si es que eres capaz de ver un puntero invisible colisionando :D :D ^^U
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

si el punto mouse.x y mouse.y colisiona con algo

a bruto modo

if ( pixel_escena( mouse.x, mouse.y ) ) colision! (considera scale, scalex, scaley, angle )
Download Lastest BennuGD Release: http://www.bennugd.org/node/2