4. Explicar as alterações necessárias no código para que o simulador possa considerar intervalos menores que um segundo, sendo executado a 60 fps e ainda mantendo o tempo real.
Código anterior:
int tAtual = 0;
int vAtual = 10;
int dAtual;
void setup() {
frameRate(1);
size(600, 600);
background(255);
}
void draw() {
dAtual = MRU(vAtual, tAtual);
println(tAtual, dAtual);
ellipse(dAtual, 300, 10, 10);
tAtual++;
}
int MRU(int v, int t) {
int d;
d = v * t;
return(d);
}
Código alterado:
float tAtual = 0+1/60;
float vAtual = 10;
float dAtual;
void setup() {
size(600, 600);
background(255);
}
void draw() {
dAtual = MRU(vAtual, tAtual);
println(tAtual, dAtual);
ellipse(dAtual, 300, 10, 10);
tAtual++;
}
float MRU(float v,float t) {
float d;
d = v * t;
return(d);
}
Em sala, fizemos com que o código utilizasse metros por segundo, pois ele não teria que lidar com intervalos menores que um segundo e por isso a variável que representa o tempo foi declarada como inteiro. Agora mudei ela para float para que pudesse implementar o que foi pedido no exercício, no entanto, para que não dê erro em todos os outros cálculos do programa, tambem mudei todas as variáveis para float, inclusive a função MRU, imaginando que futuros problemas poderiam acontecer.
Para que o draw() pare de rodar a cada 1 segundo, retirei a função frameRate() e por padrão o draw() volta a rodar 60 vezes por segundo, porém assim não teremos o tempo real. Para tentar solucionar isso, declarei que a variável de tempo deve iniciar com 1/60 para acompanhar o draw().
Comentários
Postar um comentário