Conectar-se
Quem está conectado
17 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 17 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ir em baixo
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 30/06/2010
Número de Mensagens : 642
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 21

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

[Resolvido]repetir ação sem reescrever todo o código?

em Qua 23 Maio 2018, 11:14
Depois de ter descoberto como identificar quando o jogador pressionar o ESC na função show_message_ext no Game Maker, me deparei com um problema, primeiro quero deixa-los informados do código que estou usando:

evento press :

Código:
resposta = show_message_ext("teste bem testado testadinho",0,"obrigado",0);
switch resposta

{
case(0):///esse é o caso de quando aperta ESC

break;

case(1):

break;

case(2):///caso aperte o botão do meio da mensagem, que é o botão obrigatório a apertar
show_message("de nada")
break;

case(3):

break;
}

A questão é que eu preciso que quando o case(0), ou seja, quando o ESC for pressionado, repita todo o código, mas de forma que eu não precise reescrever ele no case(0), pois se não iria ficar um ciclo sem fim, por conta do case(0), caso alguém não tenha entendido, vou deixar abaixo uma foto com legenda pra maior entendimento:

imagem:



Última edição por Mentos e Coca-cola em Qua 23 Maio 2018, 14:47, editado 1 vez(es)
avatar
Data de inscrição : 27/11/2012
Número de Mensagens : 249
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 45
Ver perfil do usuário

Re: [Resolvido]repetir ação sem reescrever todo o código?

em Qua 23 Maio 2018, 11:50
Reputação da mensagem: 100% (1 votos)
Você pode usar scripts (na pasta script) pra gerar ações "reutilizáveis".

Isso é o equivalente do GM à funções/procedures do usuário.

Crie um script com o código desejado e nomeie da forma que for conveniente. Depois no evento em que quiser executar essa ação, basta "chamar" o script, ex:

nome_do_script();

Dentro dos parênteses você pode passar argumentos para o script, como valores de variáveis, ex:

Script area_do_retangulo
base = argument0
altura = argument1

area = base * altura

E na hora de chamar o script:

area_do_retangulo(20, 30);

Isso iria executar o script com os valores de 20 e 30 para base e altura, respectivamente, armazenando então o resultado na variável area.

Se preferir pode usar "return" para retornar o valor ao invés de armazenar em variável, ex:

base = argument0
altura = argument1

return base * altura

Você pode chamar scripts dentro de outro script, inclusive o próprio script que está sendo executado (função recursiva).
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 30/06/2010
Número de Mensagens : 642
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 21

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido]repetir ação sem reescrever todo o código?

em Qua 23 Maio 2018, 14:17
@Dotted Chaos escreveu:Você pode usar scripts (na pasta script) pra gerar ações "reutilizáveis".

Isso é o equivalente do GM à funções/procedures do usuário.

Crie um script com o código desejado e nomeie da forma que for conveniente. Depois no evento em que quiser executar essa ação, basta "chamar" o script, ex:

nome_do_script();

Dentro dos parênteses você pode passar argumentos para o script, como valores de variáveis, ex:

Script area_do_retangulo
base = argument0
altura = argument1

area = base * altura

E na hora de chamar o script:

area_do_retangulo(20, 30);

Isso iria executar o script com os valores de 20 e 30 para base e altura, respectivamente, armazenando então o resultado na variável area.

Se preferir pode usar "return" para retornar o valor ao invés de armazenar em variável, ex:

base = argument0
altura = argument1

return base * altura

Você pode chamar scripts dentro de outro script, inclusive o próprio script que está sendo executado (função recursiva).

Eu nem havia pensado em utilizar scripts pra fazer isso, mas depois de muito trabalho pra reescrever todos os códigos e decifrar a bagunça que eu tinha feito, eu consegui com base na ideia que você deu, ficou até mais organizado e prático pra quando eu quiser adicionar funções a mais nas escolhas, obrigado mesmo pela ajuda cara.
Conteúdo patrocinado

Re: [Resolvido]repetir ação sem reescrever todo o código?

Voltar ao Topo
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum