Página 1 de 1
mouse_check_button duvidas
Enviado: Sáb Out 29, 2016 5:24 am
por Zero
Porque quando uso o evento do mouse left button ele se comporta diferente do codigo usando mouse_check_button(mb_left)?
Quando uso mouse left button, ele verifica se eu cliquei sobre o obj que está usando este evento, mas se usar mouse_check_button(mb_left) em um step, ele verifica se o botão esquerdo do mouse foi apertado, independente de ter sido clicado neste obj ou não, ou seja, funciona como um global mouse left button. Como fazer um mouse left button por código em um step?
Re: mouse_check_button duvidas
Enviado: Sáb Out 29, 2016 8:12 am
por Chuaschinai
Bom é porque o evento Mouse Pressed que você cria no objeto e dele mesmo então ele se refere a somente ele, agora quando você coloca algum codigo no step do objeto ele não se limita a eles da mesma forma que o Global mouse tambem não porque ele é global, mas a sim uma forma simples de fazer isto, veja que é possível você delimitar uma área de checagem para que ele detecte o objeto ou botão:
Código: Selecionar todos
/// CREATE
mouse_enter = false; // checa se o mouse este dentro do botão ou não ect...
Código: Selecionar todos
/// STEP
var bt_height, bt_width;
bt_height = 64; // altura do botão
bt_width = 256; // largura do botão
if(mouse_check_button_pressed(mb_left)){ // caso botão esquerdo do mouse seja pressionado
if(mouse_x > x-bt_width/2 && mouse_x < x+bt_width/2 && mouse_y > y-bt_height/2 && mouse_y < y+bt_height/2){ // faz a checagem nos eixos x e y do objeto a ser checado
mouse_enter = true; // caso esteja dentro do objeto determina o valor da var do create em verdadeiro;
} else mouse_enter = false; // caso não continua determinando em falso
}
Espero que te entendido fiz e nem testei, mas o creio que seja isso que você esteja procurando, qualquer coisa tamo ae...
Re: mouse_check_button duvidas
Enviado: Sáb Out 29, 2016 11:15 am
por Superbomber
Apenas corrigindo a informacao:
- No [local] Mouse Check, alem de verificar o mouse esta sendo pressionado tambem verifica se o ponto na posicao do Mouse colide com a mascara do objeto.
- O Global Mouse Check, apenas verifica se o Mouse esta sendo pressionado.
Uma maneira pratica e simples de reproduzir isso:
Código: Selecionar todos
if( collision_point(mouse_x, mouse_y, id, true, false) && mouse_check_button(mb_left) ){
// Codigo aqui
}
O resultado e identico ao evento (Mouse > Left button).
Leia no docs sobre as funcoes
mouse_check_* e
collision_*.
Bye.

Re: mouse_check_button duvidas
Enviado: Dom Out 30, 2016 7:36 pm
por Zero
to usando esse collision_point, mas achei que tivesse algum comando específico. Obg pessoal :D