Prostą opcją jest ręczne śledzenie czasu za pomocą millis().
byłoby użyć dwóch zmiennych:
- jeden do przechowywania upłynął czas
- jeden do przechowywania czasu oczekiwania/zwłoki potrzeba
W metodzie draw(), by sprawdzić, czy różnica między bieżącym czasem (w milisach.) a wcześniej zapisanym czasem jest większa (lub równa) opóźnieniu.
Jeśli tak, to to czy ty jesteś cue zrobić cokolwiek za opóźnienie podane i aktualizuje czas przechowywany:
int time;
int wait = 1000;
void setup(){
time = millis();//store the current time
}
void draw(){
//check the difference between now and the previously stored time is greater than the wait interval
if(millis() - time >= wait){
println("tick");//if it is, do something
time = millis();//also update the stored time
}
}
Oto niewielkie zmiany aktualizacje a „igły” na ekranie:
int time;
int wait = 1000;
boolean tick;
void setup(){
time = millis();//store the current time
smooth();
strokeWeight(3);
}
void draw(){
//check the difference between now and the previously stored time is greater than the wait interval
if(millis() - time >= wait){
tick = !tick;//if it is, do something
time = millis();//also update the stored time
}
//draw a visual cue
background(255);
line(50,10,tick ? 10 : 90,90);
}
W zależności od konfiguracji/potrzeb, możesz zawinąć coś takiego w klasę, która może być ponownie wykorzystana. Jest to podstawowe podejście i powinno działać również z wersjami Androida i JavaScript (chociaż w javascriptie masz setInterval()).
Jeśli interesuje Cię używanie narzędzi Java, jak zasugerował FrankieTheKneeMan, dostępna jest klasa TimerTask i jestem pewna, że jest tam mnóstwo zasobów/przykładów.
można uruchomić demo poniżej:
var time;
var wait = 1000;
var tick = false;
function setup(){
time = millis();//store the current time
smooth();
strokeWeight(3);
}
function draw(){
//check the difference between now and the previously stored time is greater than the wait interval
if(millis() - time >= wait){
tick = !tick;//if it is, do something
time = millis();//also update the stored time
}
//draw a visual cue
background(255);
line(50,10,tick ? 10 : 90,90);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.4.4/p5.min.js"></script>
... jakim języku? – FrankieTheKneeMan
Używam przetwarzania (Java) – D34thSt4lker