Autor Wątek: pp  (Przeczytany 2283 razy)

Offline rkx

  • Użytkownik

# Kwiecień 05, 2006, 09:28:12
na jakiej zasadzie generowana jest droga w grach wyscigowych typu pole position??

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline shyha

  • Użytkownik
    • Shyha@Flickr

# Kwiecień 05, 2006, 09:39:43
Tzn? Chodzi ci o sam układ trasy czy o jej wyświetlanie?

Poza tym spróbuję ci odpowiedzieć w sposób, który cię bardziej zaktywizuje (w sposób w jaki powinno podchodzić się do tego typu problemów). Zamiast pytać 'jak się to robi' zastanów się - jakbyś TY to zrobił? A więc? Jak ty sobie to wyobrażasz?

Offline rkx

  • Użytkownik

# Kwiecień 05, 2006, 10:11:41
jesli zadaje pytanie to znaczy, iz nie znam odpowiedzi i chcialbym ja uzyskac od osob, ktore mialy juz do czynienia z podobnym problemem.
wracajac do pytania, problem dotyczy animacji - nie wiem w jaki sposob plynnie wyswietlac animacje drogi, oraz zasymulowac wzniesienia, oraz spadki :/
pozdr

Offline shyha

  • Użytkownik
    • Shyha@Flickr

# Kwiecień 05, 2006, 10:27:06
Oczekujesz prostej odpowiedzi. Spróbuj sam się zastanowić jakby to mogło wyglądać. To, że teraz nie wiesz jak to dziala wcale nie oznacza, że nie jesteś w stanie tego wymyśleć. Zauważ, że my też nie wiemy jak to zrobili programiści piszący PolePosition, Lotus'a czy też CrazyCars. Jeśli nie ty, to ktoś inny będzie się zastanawiał ale zapewniam cię, że więcej satysfakcji da ci to gdy sam to spróbujesz opracować. Zastanów się, napisz co wymyśliłeś a my postaramy się ciebie nakierować na odpowiednie tory.

Edit:
Nakieruję cię lekko - wystarczą same sprajty i funkcje trygonometryczne (tak na prawdę to bez nich też można się obejść)
« Ostatnia zmiana: Kwiecień 05, 2006, 10:31:22 wysłana przez shyha »

Offline shyha

  • Użytkownik
    • Shyha@Flickr

# Kwiecień 06, 2006, 14:25:55
Hej!

No i jak? Wymyśliłeś coś?

Offline Yazilim

  • Użytkownik

# Kwiecień 06, 2006, 14:39:19
Hej!

No i jak? Wymyśliłeś coś?

Załamałeś kolegę i teraz już się nie odezwie  ;D ;)

Offline rkx

  • Użytkownik

# Kwiecień 11, 2006, 11:55:31
buhahaha :D ROTFL ;_)
to mnie rozsmieszyliscie :)
juz dawno wszystko zaimplementowane ;P chodzilo mi o szybka odpowiedz (rozwiazanie) ad hoc, a nie o rozwiniecie dyskusji :)
pozdroffka :]

Offline shyha

  • Użytkownik
    • Shyha@Flickr

# Kwiecień 11, 2006, 11:58:21
Więc jak to rozwiązałeś?

Offline MDW

  • Użytkownik
    • www.encore-games.com

# Kwiecień 11, 2006, 13:54:06
na jakiej zasadzie generowana jest droga w grach wyscigowych typu pole position??

Ja wlasnie koncze robic taka gre. Pisze w Javie (MicroEdition) na rozne telefonu - od rozdzielczosci 96x60 do 240x320. Droga generuje sie sama w zaleznosci od rozdzielczosci ekranu. Jest cieniowana (im dalej tym ciemniej i ma przesuwajace sie linnie skracajace wraz z odlegloscia (niby zgodnie z perspektywa). Mialem wprowadzac na drodze jakies smieci ale chyba sobie daruje. Zakladam, ze to nie sa polskie drogi i sa rowne i gladkie. ;)

Nie wiem jak to zrobiles ale generuje sprajty o wysokosci 1 pixela i zwiekszajacej sie szerokosci. Rysuje je jeden pod drugim dokladnie na srodku ekranu jezeli droga jest prosta i auto stoi na srodku drogi. Jezeli auto sie przesuwa to przesuwam poszczegolne linie drogi tak, ze ta najdalsza przesuwa sie najmniej, a ta najblizsza najwiecej. To calkiem sprawnie udaje prespektywe. Jezeli droga zakreca to dodaje przesuniecie wynikajace z zakrzywienia drogi. Mam tez wyliczona tablice (zeby tego nie wyliczac w czasie rzeczywistym, bo slabsze telefony by zdechly) ktora pozwala rzutowac pozycje na drodze na taki "rzut perspektywiczny". Jakos to w miare wyrabia...

         --|--
        ---|---
       ----|----
      -----|-----
     ------|------
    -------|-------
   --------|--------
  ---------|---------
         []-[]

    --|--
    ---|---
    ----|----
    -----|-----
    ------|------
    -------|-------
    --------|--------
    ---------|---------
      []-[]

   --|--
     ---|---
      ----|----
       -----|-----
       ------|------
       -------|-------
      --------|--------
     ---------|---------
            []-[]

Inna sprawa przesuwajaca sie linia przerywana na srodku drogi. Zrobilem to tak, ze wspomniane wczesniej sprajty wygenerowalem w dwoch wersjach. Jedna ma na srodku linie, druga nie. No i teraz w zaleznosci od tego czy w danym miejscu ma byc linia czy nie wyswietlam odpowiedniego sprajta drogi. Linie przerywane im dalej tym sa krotsze oczywiscie.

Ze wzgledu na to, ze robie to na bardzo wolne maszyny i w koszmarnie wolnej Javie zastosowalem sporo tablicowania. Na bardziej wypasionych maszynach na pewno mozna to zrobic lepiej i pozwolic sobie na troche wiecej szalenstwa. Ja na przyklad zrezygnowalem z pagorkow, dolin. I tak ledwo to wyrabia, bo to przeciez jest tylko niewielka czesc tego co w trakcie gry musi byc robione. Przyjalem zalozenie, ze bedzie to ostatnia gra chodzaca nawet na tak zdolowanych telefonach jak 3510i (rozdzielczosc 96x60). Chociaz jednoczesnie robie tez wersje troche lepsze, np. na Nokie 6630 (176x208), Motorole E1000 (240x320 minus jakies paski na dole i gorze ekranu - nie pamietam jakie). Prace się strasznie ślimaczą, bo w tym czasie ciągnę coś innego co jest moim głównym zajęciem niestety. :(

Offline shyha

  • Użytkownik
    • Shyha@Flickr

# Kwiecień 11, 2006, 16:35:25
No a co z górkami?  8)

Offline MDW

  • Użytkownik
    • www.encore-games.com

# Kwiecień 11, 2006, 19:17:29
No a co z górkami?  8)

Tak jak już wspomniałem - górki olałem. Za bardzo mi się to wszystko skomplikowało i najsłabsze maszyny mogłby mi tego już nie uciągnąć. Za to położyłem nacisk na trochę inne rzeczy. Widok jest ze środka samochodu. Widać deskę rozdzielczą, obracającą się kierownicę, są prawdziwe wskazówkowe wskaźniki (obrotomierz, prędkościomierz), wskaźnik paliwa, działające (wektorowe) wycieraczki oczyszczają szybę podczas opadów deszczu lub śniegu. Autka jeżdżą z różną prędkością i w dwóch kierunkach (a nie jak to zazwycaj w grach na telefony bywa w jednym - wszyscy do przodu). Jest też miniaturowe lusterko wsteczne pokazujące drogę za bohaterem. Jest ono nieco uproszczone, bo widok jest prosty i nie uwzglednia perspektywy. Jednak spokojnie to wystarczy - to ma zaledwie kilkanaście pixeli wysokości. Lusterko jest bardzo przydatne gdy się kogoś wyprzedza. Jak wyprzedzany pojazd pojawia się w lusterku to znaczy, że można zjechać na swój pas. Ruch uliczny można przełączyć z prawostronnego na lewostronny. Po drodze tankuje się paliwo zatrzymując się obok stacji paliw. Co jakiś czas przejeżdża policja. Będą ograniczenia prędkości, mandaty, pościgi. :) Gra ma trzy wektorowe (skalowane, obracane, przesuwane) mapy i trasę dojazdu do celu gracz sam wybiera. Za każdym razem ta sama droga jest dokładnie taka sama (w tych samych miejscach są takie same zakręty, a nie pełna losowość). Nareszcie miałem okazję użyć starej metody (z gry Elite) opisanej chyba w pierwszym tomie Perełek. To naprawdę działa i się sprawdza. Jakbym miał normalnie zapamiętać dane o wszystkich drogach to na maszynach z ograniczeniem wielkości JARa do 63kB na pewno bym tego nie zmieścił. Jeszcze muszę trochę popracować nad sztuczną inteligencją samochodów. Teraz wyprzedzają zawsze gdy muszą nie patrząc czy coś z przeciwka jedzie i często dochodzi do czołowych kolizji. :) No ale to wszystko jest w trakcie pisania... Męcze się, bo założyłem sobie, że to będzie chodziło nawet na tak zdołowanych maszynach jak Nokia 3510i. Teraz żałuję... No ale trudno - skończyć trzeba. :)