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