Witam wszystkich,
Mam pewnien problem z którym męcze się już kilka godzin. Mianowicie chodzi o poruszanie się obiektów wcześniej wymienionej klasy. Obiekty te są wstawiane w plansze za pomocą metody która odczytuje ich współrzędne a następnie ładuje do tablicy. Ale z tym jest wszystko w porządku. Mój problem polega na tym, że poruszanie się tych obiektów powinno wykonywać się w taki sposób, że gdy dojdzie do pewnego miejsca, wraca i porusza się do początku i tak w kółko. W jedną strone wszystko działa tak jak powinno natomiast w drugą strone jest już gorzej.
Poniżej umieszczam fragment kodu metody postep(int licznikGry) w której jest wykonywane przeskakiwanie klatek odpowiednich obiektów poprzez wywołanie odpowiedniej metody. To tak po krótce jeżeli chodzi o tą metode. Obiekt klasy Sprite ma się poruszyć o długość równą trzech kafelków, który ma rozmiar 24x24 i z powrotem. Proszę o wszelkie sugestie, jeżeli coś jest nie zrozumiałem to proszę pytać.
//Poruszanie się wszystkim przedmiotom
public int postep(int licznikGry) {
boolean poruszaj = true;
int retWartosc = 0;
for(int i = 0; i < monety.length; i++) {
monety[i].postep(licznikGry);
}
for(int j = 0; j < wrogowie.length; j++) {
wrogowie[j].postep(licznikGry);
}
while(poruszaj) {
if(wrogowie[1].getX() != (SZEROKOSC_KAFELKA*3)) {
wrogowie[1].setTransform(Sprite.TRANS_MIRROR);
wrogowie[1].move(-1, 0);
} else if(wrogowie[1].getX() + SZEROKOSC_KAFELKA != SZEROKOSC_KAFELKA*6) {
wrogowie[1].setTransform(Sprite.TRANS_NONE);
while(wrogowie[1].getX() + SZEROKOSC_KAFELKA != SZEROKOSC_KAFELKA*6) {
wrogowie[1].move(1, 0);
}
}
poruszaj = false;
}
setPotrzebaRepaint();
return(retWartosc);
W tym przypadku gdy próbuje poruszyć postać w prawą stronę to przeskakuje ona bardzo szybko bez wykonania przesunięcia w odpowiednim tępie. Zaznaczę że plansza składa się z tablicy 16x16 kafelków z czego każdy ma rozmiar 24x24.