Como parar ciclo no STEP ?

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Como parar ciclo no STEP ?

Mensagem por mleoni em Ter 03 Set 2013, 13:04

Quando quero parar um ciclo no step,sempre faço assim :
Exemplo :
*no create*
Código:

parando = false;
*no step*
Código:

if x=300 and parando=false then
{
 nivel+=1;
 parando=true;
}
E em alguma outra parte do jogo coloco parando=false novamente,isso é só um exemplo,mas gostaria de saber se há alguma maneira com menos gambiarra mais fácil de fazer isso. Happy

mleoni

Número de Mensagens : 81
Idade : 21
Data de inscrição : 06/03/2013
Reputação : 23
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como parar ciclo no STEP ?

Mensagem por mZIl em Ter 03 Set 2013, 13:11

Não acho que tenha alguma maneira melhor de fazer isso. Mas para ser muito mais eficiente, em vez de usar "and" use apenas um "if not parando". E dentro desse super-if colocar outros "if's", então ficaria assim:

Código:

if parando = false
{
    if x > 300
    {
        nivel += 1
        parando = true
    }
   
    if x <0 //Apenas pra demonstrar :P
    {
        nivel -= 1
        parando = true
    }
}
Então você não iria checar milhões de vezes a mesma coisa. O bom é sempre evitar qualquer tipo de repetição, fica muito mais fácil de mudar o código depois, e também para corrigir bugs, além de que em alguns casos o processamento em si fica mais rápido, como nesse caso.

mZIl

Número de Mensagens : 49
Idade : 19
Data de inscrição : 10/07/2013
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como parar ciclo no STEP ?

Mensagem por GameMakerTutoriais em Ter 03 Set 2013, 13:16

Você pode usar exit no início do código e ele não será executado até o final. Mas se houver outro "piece of code", você terá que pôr outro "exit" no início dele.

Código:

if parando then exit

if x > 300
{
    nivel += 1
    parando = true
}
      
if x <0 //Apenas pra demonstrar
{
    nivel -= 1
    parando = true
}
Abraços.

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como parar ciclo no STEP ?

Mensagem por mleoni em Ter 03 Set 2013, 13:51

O que eu queria na verdade é checar alguma condição continuamente, mas após essa condição ser verdadeira (ou o que seja) acontecer o que for pedido apenas uma vez, e não continuamente.Mas obrigado aos dois pelas dicas xD

mleoni

Número de Mensagens : 81
Idade : 21
Data de inscrição : 06/03/2013
Reputação : 23
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como parar ciclo no STEP ?

Mensagem por mZIl em Ter 03 Set 2013, 13:55

mleoni escreveu:O que eu queria na verdade é checar alguma condição continuamente, mas após essa condição ser verdadeira (ou o que seja) acontecer o que for pedido apenas uma vez, e não continuamente.Mas obrigado aos dois pelas dicas xD
Nesse caso é só colocar o "parando = true" no final do código, e não dentro dos if's.

Código:

if parando = false
{
    if x > 300
    {
        nivel += 1
    }
    
    if x <0 //Apenas pra demonstrar
    {
        nivel -= 1
    }
    
    parando = true
    
}

mZIl

Número de Mensagens : 49
Idade : 19
Data de inscrição : 10/07/2013
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como parar ciclo no STEP ?

Mensagem por GameMakerTutoriais em Ter 03 Set 2013, 13:58


Talvez você queira experimentar o evento Trigger. Você coloca uma condição por código e ela só vai "acontecer" quando o retorno da condição for verdadeiro (como se fosse um script).

O código é escrito numa janelinha separada, então é bom você dar uma olhadinha num tutorial antes, mas é bem fácil! Acho que tem tutoriais no fórum...

---Edit---

Aqui:
http://gmbr.forumeiros.com/t19460-duvidatrigger?highlight=trigger


Abraços.

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como parar ciclo no STEP ?

Mensagem por mleoni em Ter 03 Set 2013, 15:57

Nunca experimentei esse trigger,vou ver como é,vlw aí.
mZiL,na verdade é mais ou menos assim q eu uso,só queria saber um jeito sem essas gambiarras dessa variável "parando",mas valeu as dicas.

mleoni

Número de Mensagens : 81
Idade : 21
Data de inscrição : 06/03/2013
Reputação : 23
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como parar ciclo no STEP ?

Mensagem por Conteúdo patrocinado Hoje à(s) 18:09


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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