Ajuda em Função de Soma

11 Respostas   365 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

Lima

Tópico criado em: 17/02/2016 às 20:08 - Última modificação por Skyloftian em 18/02/2016 às 16:37

Basicamente criei uma função e coloquei isto dentro:
Código: [Selecionar]
while(Input.isTriggered('tab')){
ia+=0.2;
console.log(ia);
}

Depois chamei a função em processo paralelo e a partir do momento que entra no while nunca mais sai mesmo que eu deixe de pressionar a telca!
Alguém sabe?

Azraven

  • *
  • Posts: 200
  • Ouros: 104
  • ...
Resposta 1: 18/02/2016 às 08:35

Olha, não tenho o mv mas se for similar ao ace existe a função Input.trigger que retorna se simplesmente se atecla foi pressionada  uma vez, e a função Input.press que retorna verdadeiro apenas se a tecla for mantida pressionada. Procure ai se não existe uma função do tipo Input.isPressed ou algo do tipo.

Lima

Resposta 2: 18/02/2016 às 11:14

O mesmo acontece se for isPressed, o que está mal é que é só enquanto a tecla está clicada, e a partir do momento que é clicada nunca mais sai do while!

DarkHyudrA

  • *
  • Posts: 68
  • Ouros: 24
Resposta 3: 18/02/2016 às 14:56

Voce tem que mudar o while por um IF
O porque disso eh que naquele frame, o botao foi apertado, e isso nao se perde para que caso multiplos scripts precisem verificar o botao, eles nao sejam interrompidos porque outro script executou primeiro.

Com o while voce nunca vai sair dele porque o frame nao roda denovo pra ler o input. Espero ter ajudado!
Our work is never over

Lima

Resposta 4: 18/02/2016 às 15:00

Eu já tinha descoberto isso, contudo com while soma, com if aparece NaN :/

DarkHyudrA

  • *
  • Posts: 68
  • Ouros: 24
Resposta 5: 18/02/2016 às 15:23

Onde voce definiu "ia"?
Pode estar com lixo da memória, aí você acaba com NaN.(Not a Number)
Our work is never over

Lima

Resposta 6: 18/02/2016 às 15:29

Defini na função, mas só lê uma vez se calhar é por isso! Qual a melhor forma?

DarkHyudrA

  • *
  • Posts: 68
  • Ouros: 24
Resposta 7: 18/02/2016 às 15:38

É que existe o conceito de inicializar uma variável. Não só pra que ela tenha um valor inicial, mas também pra que ela não fique com um valor aleatório(que pode muito bem te levar a ter um NaN).

Se essa função tá dentro de uma classe, você pode fazer com que onde é definida a classe já declarar "ia = 0" e tudo iria funcionar normalmente.
Our work is never over

Lima

Resposta 8: 18/02/2016 às 15:45

ta dentro da função mas tipo se eu meto var ia = 0, quando chamar outra vez a função o ia vai começar do zero entende?

DarkHyudrA

  • *
  • Posts: 68
  • Ouros: 24
Resposta 9: 18/02/2016 às 15:56

Por isso que to dizendo, tu tem que declarar o ia fora da função. Senão sempre que terminar a função o valor vai se perder. Com while só soma certo porque tu nunca saiu da função pra perder o valor :)
Our work is never over

Lima

Resposta 10: 18/02/2016 às 16:25

Já sei qual foi o meu erro tava chamando a função no evento 1 e declarando o ia no evento 2 daí que ele não era encontrado! Valeu cara!

Gabriel

Resposta 11: 18/02/2016 às 16:37

Problema resolvido! :lock: