Noviembre 17, 2018, 11:58:49 PM Ultima modificación: Noviembre 18, 2018, 07:11:15 PM por Goganpis
Hola, comunidad:

Mi problema es: como rayos se hace un pinche boton con codigos en draw_gui, he hecho un boton de tal forma que nunca me dan las coordenadas del sprite con las del mouse exactas. Aqui esta el codigo y no entiendo el porque si utilizo la posicion del mouse como referencia

en el evento Step
/// Estupidenium :v

mx = display_mouse_get_x();
my = display_mouse_get_y();

if mx > 16 and mx < 32
and my > 16 and my < 32
{
// EL CODIGO
game_end(); // Solo para probar como funciona
}


Evento Draw_GUI
/// Dibujar sprite
draw_sprite(sprite_index,0,16,16);


utilizo una variable global.Zoom en la cual adapto la view al zoom del room.
desde otro objeto control al crearse la room adapta la GUI a 1024x768.
Ya he probado con mouse_x/mouse_y pero, lo que hace es medir cada pixel en tamaño de la view.

Solución fácil:
[gml]
///COORDENADAS EN PANTALLA (NO EN HABITACIÓN) DEL MAUS
var mouse_display_x = mouse_x - view_xview[0];
var mouse_display_y = mouse_y - view_yview[0];
[/gml]

Solución menos fácil: Usa teclas virtuales.
http://docs.yoyogames.com/source/dadiospice/002_reference/mouse,%20keyboard%20and%20other%20controls/virtual%20keys/index.html
alaberga regué el café.

BA:STFW&RTFM

Mejor usar
[gml]
device_mouse_x_to_gui(0);
device_mouse_y_to_gui(0);
[/gml]

Acabo de saber que existe device_mouse_*_to_gui();
Gracias a los dos por responder, la solucion facil que me dio NiuWeb me calcula es la posicion del mouse en pixeles basados en la view, en cambio hay algo que se llama draw_gui y ese tiene una escala diferente el cual no entiendo como funciona, por ello no se hacer el boton

La capa GUI tiene un tamaño independiente de la view y el port.
Cambia el tamaño de la GUI al inicio del juego. Lo recomendable es darle el mismo tamaño de la view para que todos los gráicos tengan la misma escala.
[gml]
display_set_gui_size(view_wview[0], view_hview[0]);
[/gml]

Ya lo habia hecho hasta los momentos no ha dado problemas, esta solucionado.