Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Duvida sobre Criação de scripts no gms Tópico resolvido

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Rodrigo_GM
Membro
Membro
Reações: 0
Mensagens: 23

Duvida sobre Criação de scripts no gms

Mensagem por Rodrigo_GM » Sáb Abr 25, 2020 1:28 pm

Olá galera, estou fazendo um script simples por questão de estudo, mas acho que estou fazendo errado ou abordando errado essa questão.

A Principio vou deixa claro o que estou tentando fazer. no meu jogo preciso de uma janela abra e tenha botões com múltiplas escolhas, tipo, sim e não. Como isso vai ser usado muito no jogo, e de varias maneiras diferentes, decidir chama esse codigo por um script. deu certo como vc ver na imagem abaixo. Mas como faço para alterar ação ao clicar no botão? todo codigo de desenho é feito por esse script, a checagem e ações dos botões tambem. Vou deixar o script completo logo abaixo, ta bem simples, ou talvez não, já que foi feito por um novato usando um raciocínio desajeitado XD
SPOILER: Clique para ver o conteúdo
O que eu quero com esse script é, desenha um caixa (pop-up) com um texto, e logo abaixo botões, que poderei escolher quantos aparecem, e que tem ações ao clicar. Me enganchei nas ações ao clicar :D

Meu principal problema foi como fazer o script executar ações diferente ao clica nos botões, em momentos diferentes, exemplo, pode criar um objeto ou adicionar uma variável, tudo dependo do que eu precisar, mas acho que n é possível fazer isso, então pensei, porque não só retorna que o botão foi pressionado e então executar o código no objeto mesmo. mas como faço para o script retorna que o o botão foi pressionado?

Avatar do usuário
rodrigomendes
Novato
Novato
Reações: 0
Mensagens: 11

Re: Duvida sobre Criação de scripts no gms

Mensagem por rodrigomendes » Sáb Abr 25, 2020 7:39 pm

Olá, você pode utilizar o comando execute_script(str) usando como argumento os argumentos do seu script
scr_botao(x,y,texto,n de botões, acao1, acao2, acao3): Clique para ver o conteúdo
O que eu fiz? Dentro do Loop for onde designou as ações do botão coloquei a função que eu te disse. Deste jeito ela executa o argumento de cada botão, detalhe eu troquei o valor do if i=1 para if i=0 reduzindo 1 em cada degrau. Usei o evento draw com as seguintes ações:

Código: Selecionar todos

scr_botao(200,100,"haahahahah",3,
"sound_play(snd_beep)",
"sound_play(snd_beep2)",
"instance_create(random(room_width),random(room_height),obj_ball)" )
Os argumentos que adicionei são strings que serão executadas, logo as escreva entre apóstrofos.
Crie dois songs com os nomes que indiquei snd_beep1 e snd_beep2 e um obj_ball com sprite para ver as ações funcionarem

Claro, no lugar do exemplo você pode para alterar uma variável, criar objeto, deletar outro etc.
vlw!
Portfolio:

2009 - Pro-Shoot Striker
2009 - Cubo 2
2008 - Smash !!!

Avatar do usuário
Rodrigo_GM
Membro
Membro
Reações: 0
Mensagens: 23

Re: Duvida sobre Criação de scripts no gms  Tópico resolvido

Mensagem por Rodrigo_GM » Sáb Abr 25, 2020 8:35 pm

No game maker studio 2 execute_string não é valido, provavelmente esse comando deve ter sido removido, esse comando talvez seja de uma versão anterior. Mas até que achei uma solução meio simples, se podemos dizer assim. houver algumas mudanças no código anterior. vou deixa logo abaixo.

Script: Clique para ver o conteúdo
a mudança foi pouca, tiver que criar no create evento a variável botao[0]=0, botao[1]=0, botao[2]=0, sempre que clico no botão esse variável fica verdadeira por pequeno tempo, mas é suficiente para eu fazer a checagem. Agora tenho como saber quando o botão foi pressionado. A partir disso, ate que da pra quebrar o galho.

Provavelmente há opções melhores e mais simples, mas so conseguir pensar nessa solução por enquanto. Mas como dizia seu Chico da elétrica "Se funciona, ta bom" Nunca vi uma das gabiarras dele pegar fogo, Sempre fechava os olhos kkkkk

Responder

Quem está online

Usuários navegando neste fórum: Bing [Bot] e 1 visitante