Witam.
Mam taki problem: załóżmy ze mam 3 obrazki. I chciałbym aby kazdy z nich np. co 1 sek. zmieniał swoje połozenie. Wiadomo ze do tego trzeba uzyc timera. Tylko ja bym chciał aby kazdy z obrazków zmieniał połozenie z lekkim opóźnieniem w stosunku do poprzedniego tj. obrazek 1 zmienił sie po 1 sek. a po np.0,1 sek zmienił sie obrazek 2 a kolejneym upływie 0,1 sek zmienił sie obrazek3(i potem od poczatku co dałoby wrazenie ze zmieniaja sie w różnej odstepach czasu). Czy w tym celu musze dla kazdego obrazka zrobic oddzielny timer, czy jest może jakies opóźnienie timera dla kazdego z obrazków? Jezeli nie ma do stworze te 3 timery ale to chyba zajełoby za duzo pamieci, a jako ze tworze projekt na komórke to pamieć trzeba wyjątkowo oszczędzać:)
Zrób 1 timer co 0,1 sek, a każdą z akcji wywołuj co 10 tyknięć (różnie przesuniętych).
Ee jak moge wywołać akcje co kilka tyknięć? Używam czegoś takiego
Timer timer = new Timer();
TimerTask task = new MyTask();
public class MyTask extends TimerTask
{
public void run()
{
//tu przesuwam obrazek
}
}
no i wywołuje
timer.schedule(task,10,10);
czyli co 0,1 sek wywołuje sie to co jest w metodzie run w klasie MyTask. Więc jka mam wywołac różne akcje co kilka tyknięć? Mógłbym tak zrobić, ze co 0,1 sek zmienia sie wartosc zmiennej int x; i wtedy za pomocą if sprawdzac jaka jest wartosc zmiennej x i w zależności od wartosci zmieniac położenie odpowiedniego obrazka ale to chyba nie jest zbyt dobry pomys(hehe pisząc tego posta wpadłem na ten pomysł z ifami:) ;P
btw: ;P - na minka mnie rozpi**dala:)
no pewnie że z tym x-em. Sprawdzasz resztę z dzielenia przez 10 i jak jest 1, to ruszasz pierwszym obrazkiem, 2 drugim itp.
Chociaż wiadomo, możesz też zrobić tegi x'sa tak, że jak jest 10 to zerujesz i od początku zamiast dzielić. Nie wiem dlaczego miałby to być zły pomysł. na pewno szyszy niż kilka timerów.