Poruszanie punktem w układzie współrzędnych

Dyskusje na temat języka C# oraz biblioteki .NET
abuc
Początkujący
Początkujący
Posty: 9
Dołączył(a): poniedziałek, 14 maja 2012, 14:43

Poruszanie punktem w układzie współrzędnych

Post przez abuc »

Hej

Poruszam punktem po układzie współrzędnych. Pozycja wyjściowa tego punktu to 0,0. Mam zamiar poruszać punktem w lewo i prawo w, powiedzmy sobie, pewnym pudełku czyli punkt ten będzie miał ograniczenia.

Chodzi o to, że ruszam tym punktem w lewo i po osiągnięciu na osi x wartości np. -10 chce aby punkt zaczął ruszać się w prawo. Później osiągając wartość np. +10 chce aby znowu zaczął ruszać się w lewo. Kombinuje z warunkami typu if, kombinuje z pętlami ale chyba mam jakieś problemy z logicznym myśleniem.

wklejam moje wypociny, które i tak nie działają ale może komuś pomogą w lepszym zobrazowaniu problemu. Pomijam nazwy zmiennych itd. Pytam tylko czy ktoś wie jak to logicznie skleić?

Code: Zaznacz cały

if(pozycja.punkt >= -10)
{
   ruszajWLewo;
}

if(pozycja.punkt <= 10)
{
   ruszajWPrawo;
}
Jeśli chodzi o if to nie działa to z tego względu, ze w pewnym momencie dochodzi do tego, że 2 warunki chcą się wykonywać jednocześnie

Code: Zaznacz cały

while(pozycja.punkt >=-10)
{
   ruszajWLewo;
}

while(pozycja.punkt <= 10)
{
   ruszajWPrawo;
}

Z while jest ten sam problem. Próbowałem jeszcze do while.

Chodzi o to, że funkcje te znajdują sie w klasie Update, dzięki której widzę ruchy w czasie rzeczywistym - "animacje".

Zastanawiam się czy jest jakiś sposób na to, żeby po osiągnieciu celu przez jedna funkcje if, która doprowadza punkt do pozycji -10 na osi x po prostu ją wyłączyć, żeby nie kolidowała z kolejna funkcja, która prowadzi punkt do pozycji 10 i tak na zmiane. Czyli włączyć jedna, wyłączyć druga.
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Poruszanie punktem w układzie współrzędnych

Post przez Morfidon »

Coś takiego masz rozwiązane w kursie java aspekty zaawansowane - animacja kropelki. Co prawda nie ten język, ale podobne zagadnienie. Musisz stworzyć co najmniej 4 warunki dla wszystkich ścian tzn. test dla maxX, maxY, minX, minY.
abuc
Początkujący
Początkujący
Posty: 9
Dołączył(a): poniedziałek, 14 maja 2012, 14:43

Re: Poruszanie punktem w układzie współrzędnych

Post przez abuc »

Ok, dzięki za szybką odpowiedź ale zaznaczę jeszczę, że to pudełko rusza sie w osi Y w górę czyli wartości dla Y rosną. Czy cały czas mogę spodziewać sie rozwiązania w wyżej podanej lekcji?
abuc
Początkujący
Początkujący
Posty: 9
Dołączył(a): poniedziałek, 14 maja 2012, 14:43

Re: Poruszanie punktem w układzie współrzędnych

Post przez abuc »

Post pod postem ale muszę się pochwalić rozwiązaniem, które podsunął mi jeden z kolegów innego forum.

Chodziło o proste zastosowanie zmiennej "bool", do której na początku przypisujemy true. Jeśli wartość jest true to ruszamy obiektem tak długo aż osiągnie daną wartość. Przy osiągnięciu tej wartości zmieniamy wartosc zmiennej bool na false. Ruszamy obiektem w drugą stronę tak długo aż obiekt osiągnie pewne miejsce na osi x i następnie zmieniamy wartość zmiennej bool z powrotem na true. Tak to ładnie się wszystko zapętla :)


Pozdrawiam
Post Reply