O que o Eduardo quis dizer é que em vez de usar o
show_message() para aparecer as opções, seria melhor você usar objetos ou verificar se o mouse está em cima de determinada opção usando o comando
point_in_rectangle().
Eu particularmente acharia meio feio na hora do jogo aparecer a janela popup do Windows, por isso acho melhor você fazer a sua própria janela de opções que vai ficar dentro do próprio jogo e da forma que você definir.
Então explicando a maneira mais simples de fazer que o Eduardo disse...
No momento em que você faz a mensagem aparecer, em vez disso seria melhor você criar 5 objetos que serão os botões das opções. E um
obj_optionsPai, que não precisa conter nada, será só para verificar o click do mouse apenas uma vez, caso contrário teria que verificar o click do mouse 5 vezes, uma vez para cada opção, e isso tornaria o código bem mais complicado de fazer. Então é necessário tornar o
obj_optionsPai como pai de todos os outros objetos opções. Basta abrir cada "objeto opção" e selecionar em "
Parent" o nosso
obj_optionsPai. Dessa forma nós verificamos apenas o click do mouse sobre o obj_optionsPai, que também vai valer para todos os seus objetos filhos, no caso os botões das opções.
Agora vamos aos códigos!
Antes de criar as instâncias dos botões de opção no jogo, declare no
Evento Create uma variável para cada opção e outra para saber se as opções foram criadas:
Código: Selecionar todos
show_options = false;
option1 = noone;
option2 = noone;
option3 = noone;
option4 = noone;
option5 = noone;
Depois disso já podemos criar os botões de opções, vamos aproveitar e colocar os códigos que criam os botões das opções no "mesmo lugar" que você fez para aparecer a mensagem com as opções.
Um exemplo de código bem simples que cria e salva as opções dentro de uma variável id para ser usado depois:
Código: Selecionar todos
//No evento que mostra as opções.
option1 = instance_create(x-64, y, obj_option1);
option2 = instance_create(x-32, y, obj_option2);
option3 = instance_create(x, y, obj_option3);
option4 = instance_create(x+32, y, obj_option4);
option5 = instance_create(x+64, y, obj_option5);
show_options = true;//As opções foram criadas.
Agora você já tem os botões criados, basta fazer a verificação se algumas das opções foi selecionada
(clicada pelo mouse):
Vamos criar uma verificação do click do mouse no
Evento Step para ser checada constantemente, fora da região do resto do código.
Código: Selecionar todos
if(mouse_check_button_pressed(mb_left))//Se apertou o botão do mouse.
{
if(show_options)//Se as opções já foram criadas.
{
var option_selected = instance_place(mouse_x, mouse_y, obj_optionsPai);//Verifica se o mouse está sobre alguma das opções e guarda o id da opção.
if(option_selected)//Se rotarnar verdadeiro, então o mouse está em cima de uma das opções.
{
switch (option_selected)//Pega o id da opção clicada para comparação.
{
case option1://Caso o id seja o mesmo da instância da opção 1.
//Coloque o seu código se a opção 1 for escolhida aqui.
break;
case option2://Caso o id seja o mesmo da instância da opção 2.
//Coloque o seu código se a opção 2 for escolhida aqui.
break;
case option3://Caso o id seja o mesmo da instância da opção 3.
//Coloque o seu código se a opção 3 for escolhida aqui.
break;
case option4://Caso o id seja o mesmo da instância da opção 4.
//Coloque o seu código se a opção 4 for escolhida aqui.
break;
case option5://Caso o id seja o mesmo da instância da opção 5.
//Coloque o seu código se a opção 5 for escolhida aqui.
break;
}
with(option1)instance_destroy();//Destrói o botão da opção 1.
with(option2)instance_destroy();//Destrói o botão da opção 2.
with(option3)instance_destroy();//Destrói o botão da opção 3.
with(option4)instance_destroy();//Destrói o botão da opção 4.
with(option5)instance_destroy();//Destrói o botão da opção 5.
show_options = false;//Informar que uma opção já foi escolhida.
}
}
}
Eu não testei aqui se funciona, pois fiz tudo agora de cabeça, mas pela lógica deve funcionar. Você também pode implementar e melhorar colocando um fundo ou desenhando um quadrado atrás para ficar mais bonitinho.