Forum zamknięte. Zapraszamy do grupy na Facebooku
Odpowiedz 
 
Ocena wątku:
  • 1 Głosów - 5 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z napisaniem gry w stylu Angry Birds
12-10-2012, 07:38 PM
Post: #1
Problem z napisaniem gry w stylu Angry Birds
Bobry Tongue

Od jakiegoś czasu próbuję napisać grę w stylu Angry Birds (powiedzmy, że postawiłem sobie to za punkt honoru) i napotkałem dwa główne problemy dotyczące wystrzału tej kulki, czy czegoś tam.

1. Ustawienie okrągłej granicy ruchu przed wystrzałem. Chodzi mi o tą sytuację, kiedy naciągamy tą procę - możemy to zrobić tylko na określoną odległość, która z prawie wszystkich stron jest taka sama (po środku od strony dołu kulka wchodzi na procę). Wyszło mi wszystko oprócz kształtu tego pola, po którym możemy manewrować - jest kwadrat, a chcę kółko. Zastanawiałem się nad wykorzystaniem figur geometrycznych.

2. Moment wystrzału. Kiedy puścimy kulkę powinna ona przechodzić przez środek procy, a potem polecieć dalej (tor lotu kulki dalej już samodzielnie skombinowałem). Zastanawiałem się nad rozwiązaniem, by kulka przeleciała od punktu A (ten, z którego puszczamy) do punktu B (środek procy), a następnie zwróciła kierunek i zapisała w zmiennych X i Y, które później zostałyby przekazane dalej. Ale nie jestem nawet pewien, czy taka metoda istnieje. Próbowałem szukać w dokumentacji, ale często język jest dla mnie niezrozumiały. Przy okazji, może by dodać do kursu coś o animacjach? Big Grin

Byłbym bardzo bardzo bardzo wdzięczny, gdyby ktoś pomógł mi w rozwiązaniu tych problemów Smile
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
12-16-2012, 12:09 AM
Post: #2
RE: Problem z napisaniem gry w stylu Angry Birds
1. Na mój gust wystarczy, że będziesz liczył odległość odcinka. Masz jakiś punkt centralny (środek okręgu, czyli proca), i liczysz odległość od aktualnego położenia.
2. Szczerze mówiąc nie wiem, czy do końca zrozumiałem. Nie wiem jak liczyć trajektorię lotu obiektu, ale podejrzewam, że jest to opisane zależnością położenia od czasu, więc pewnie da się to sprowadzić do tego, że mamy np punkt centralny naszego obiektu i w kolejnych odstępach czasu wyliczamy jego nowe położenie (aktualizujemy współrzędne).

To bardzo ogólne pytania i odpowiedzi, myślę, że najtrudniejsze w tym wszystkim jest opisanie wszystkiego za pomocą równania.
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
01-29-2013, 01:51 PM
Post: #3
RE: Problem z napisaniem gry w stylu Angry Birds
Co do tego drugiego to najbardziej by mnie interesowało jak "rozkazać" obiektowi by poruszył się w kierunku punktu A i się na nim zatrzymał. Próbowałem ifami np.:


if(wartoscX_obiektu < wartoscX_punktuA)
wartoscX_obiektu++;

I tak samo do Y, ale to, jak można się domyślić, nie działa.
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
02-03-2013, 09:01 PM
Post: #4
RE: Problem z napisaniem gry w stylu Angry Birds
Generalnie poruszanie, czyli tak naprawdę aktualizację współrzędnych punktu musisz zrobić za pomocą oddzielnego wątku. Możesz ewentualnie zrobić to w jednym wątku, ale wtedy zablokujesz aplikację do czasu aż obiekt dotrze do celu. Żeby coś takiego zrobić musisz stworzyć pętlę typu:
while(wartoscX_obiektu < wartoscX_punktuA) {
wartoscX_obiektu++;
Thread.sleep(30);
}

Thread.sleep odpowiada za zatrzymanie wątku na określony interwał czasowy (jako parametr podajemy czas przerwy w milisekundach) - dzięki temu będzie widać, że obiekt się porusza, a nie przeskakuje w ciągu ułamka sekundy do położenia docelowego.
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości