O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Ajuda em Função de Soma

Iniciado por Lima, 17/02/2016 às 20:08

17/02/2016 às 20:08 Última edição: 18/02/2016 às 16:37 por Skyloftian
Basicamente criei uma função e coloquei isto dentro:
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?

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.

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!

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

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

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

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

É 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

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?

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

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!