Hola de nuevo :-[ Tengo un botón de fullscreen que parece funcionar a la perfección, lo malo es que se supone que tenia que ponerse en fullscreen cuando le diera click izquierdo encima, pero al parecer le doy click izquierdo en cualquier lugar y se cambia al fullscreen. El script que tengo en un evento Step es el siguiente.
if mouse_check_button_pressed(mb_left) {window_set_fullscreen(!window_get_fullscreen());}
¿Cómo puedo hacer para que solo ocurra esto cuando le dé a click izquierdo sobre el botón? :-[
Solo pásalo al evento Left Pressed Y pon de frente
{window_set_fullscreen(!window_get_fullscreen());}
"mouse_check_button_pressed(mb_left)" devuelsi true si se ha dado clic izquierdo sobre cualquier parte, pero el evento Left Presses da true si se ha dado clic izquierdo sobre el objeto que lo ha citado.
Creo q es la unica manera, o alguien sabe otra que sea solo en código?
El evento Left Pressed funciona sólo cuando se tiene un sprite o máscara de colisión asignada. Otra forma es comparar la posición del puntero con los límites del botón:
[gml]
if mouse_check_button_pressed(mb_left)
{
if( mouse_x > borde_izquierdo
and mouse_x < borde_derecho
and mouse_y > borde_superior
and mouse_y < borde_inferior )
window_set_fullscreen(!window_get_fullscreen());
}
[/gml]
Bueno, eso es mas complejo ???
Otra cosa, ¿Cómo podrímos saber el borde derecho(o izquierdo o inferior o superior)? ¿CON las "bouncing box"?
(Se llama "bounding box") Si, se puede hacer con los límites de esa caja, también se pueden definir los valores manualmente o, como en este caso http://www.comunidadgm.org/desarrollo-de-scripts/botones-automaticos/ (http://www.comunidadgm.org/desarrollo-de-scripts/botones-automaticos/), ajustarse al tamaño del texto.
Tengo otro problema. En el object del "Fullscreen" (el texto al que hay que pulsar) tengo un evento Step con un script así:
if mouse_check_button_pressed(mb_left) && imageNumber <4 {imageNumber+=1}
if keyboard_check(vk_right) {image_index=1};
if imageNumber == 0 {image_index=0}
if imageNumber == 1 {image_index=1}
if imageNumber == 2 {image_index=0}
if imageNumber == 3 {image_index=1}
if imageNumber == 4 {imageNumber=0}
Para que al darle cambie de sprite a ON o a OFF. Lo que pasa es que tengo que hacer que esto pase solo si pulso encima, no si pulso en toda la pantalla.
Hay una cosa que no entiendo, si ya hay un evento que si aprietas el botón, o lo levantas, porque los usas en el step??
Si hay unos eventos específicos para ello??
No sé, lo vi en un vídeo y...
Cómo puedo pasar ese step a un evento entonces?
Haber si me explico, donde se ponen el CREATE, STEP, DRAW, etcc, si buscad, hay uno que pone mouse, y dentro de el esta, mouse left preses, mouse left realice, etcc. Que son al apretar y al soltar. Hay mas, es cuestión que cojas el que más te gusta.
Este evento solo se ejecuta cuando el mouse haga eso que has puesto, y este tocando el objeto, revísate la mascara, que puede que este mal.
http://www.dazlog.com/manual_GM/Eventos.htm
Ya ya, si eso lo sabía, el problema es que no se pasar el script:
if mouse_check_button_pressed(mb_left) && imageNumber <4 {imageNumber+=1}
if keyboard_check(vk_right) {image_index=1};
if imageNumber == 0 {image_index=0}
if imageNumber == 1 {image_index=1}
if imageNumber == 2 {image_index=0}
if imageNumber == 3 {image_index=1}
if imageNumber == 4 {imageNumber=0}
A un evento de left pressed, es decir, que tengo que cambiar para que funcione.
Borra esta línea de STEP:
Cita de: Robersio en Mayo 27, 2015, 05:26:05 PM
if mouse_check_button_pressed(mb_left) {window_set_fullscreen(!window_get_fullscreen());}
Y usa esto (debes agregar el evento)
EVENTO MOUSE LEFT PRESSED
[gml]window_set_fullscreen(!window_get_fullscreen());[/gml]