Skocz do zawartości
  • Ogłoszenia

  • Gdzie świętować urodziny GMCLANu   31 użytkowników zagłosowało

    1. 1. Gdzie świętować urodziny GMCLANu


      • Warszawa (bo w centrum)
      • Szczecin (bo tam mieszka Ranma i narodził się GMCLAN)

    Żeby zagłosować w tej ankiecie, prosimy się zalogować lub zarejestrować. Zobacz temat
  • 0
pazio

PitStop i sesja kwalifikacyjna

Pytanie

witajcie to znowu ja

czekając na odpowiedź dotyczącą punktów postanowiłem że zabiorę się za sesję kwalifikacyjną oraz zrobię aleje serwisową czyli pitstop

 

jakoś marnie to wychodzi ale udało mi się zrobić prosty licznik ,który nie chce się zatrzymać :rolleyes: :rolleyes: :rolleyes:

 

a teraz jednak mam takie dwa pytanka

 

1)jak zrobić by po okrążeniu przeze mnie wykonanym licznik wyświetlał czas przejechany moim bolidem?

 

2)jak zrobić by AI wbijał do alei serwisowej i zmieniał opony(oczywiście co kilka okrążeń)

 

byłbym bardzo szczęśliwy jakby ktoś wytłumaczył to np.pokazując za pomocą kodów

albo przykładem

 

czekam i pozdrawiam

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

19 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

oj, oj.

wiem ze to nie odpowiedz, ale zaraz bedziesz nam kazał zrobić całą grę.

zrób najpierw jakąś inną gierke topdown, prostą

strzelanie, chodzenie, jakieś proste boty, przełączanie dzwigni, otwieranie drzwi...

 

1)przy przejechaniu okrążenia zapisuj czas do zmiennej napis po czym zeruj zmienna czas

przez cały czas jak bolid jedzie dodawaj do zmiennej czas okreslona ilosc(sekundy czy milisekundy)

poprzekroczeniu mety

napis=czas

czas=0

i ponownie

2)bardziej rozbudowane zagadnienie

na poczatku wylosuj sobie co ile zmienia koła, czy cokolwiek np. zamiana_co_ile=4+random(8) div 1

i wtedy if okrazenie= zmiana_co_ile div okrazenie to wjedzie do "PitStopu"

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

kriso99: random(8) div 1 to irandom(8). 'i' od 'integer'. Poza tym dobry tok myślenia. ;)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

1) Przepisywać zmienną z aktualnym czasem do zmiennej ktora pokazuje ostatni czas mijając metę

2) zrobić ifa który w odpowiednim momencie nakazuje skręcic. Ciężko powiedzieć, są setki sposobów na AI jazdy do wyścigów, dobierz coś najlepszego dla siebie :)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

Bo w GM:Studio trzeba używać randomize() żeby gra wybierała co uruchomienie nowy seed. ;) random() też będzie zwarać te same liczby.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0
Bo w GM:Studio trzeba używać randomize() żeby gra wybierała co uruchomienie nowy seed. ;) random() też będzie zwarać te same liczby.

 

Nie trzeba. Jak testujesz, to zawsze jest seed ten sam ustawiony, żeby było łatwiej debugować, więc MOŻNA na czas testowania dodać, ale w finalnej wersji nie jest potrzebne.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

Wait, what? Jestem prawie pewien że to działa jak wszędzie. W dokumentacji na ten temat nic nie ma. A chociażby robiąc grę na Pixel Heaven mój ostatni build (bez randomize()) był z takim seedem że gracz ginął w pierwszej sekundzie gry.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

chodzi o to że zjeżdżał często do pit stopu a mi chodzi o to żeby tak jak w formule zjechał od 3 do 4 razy no chyba że miał kolizje to 5

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

GML
if room = Polska

{path_start(rai1,path_speed,1,false)}

else

path_end = rai1

random = path_start = rai1

random = path_start = rai2

 

zrobiłem takie coś ale nie chce mi używać mój AI tego drugiego patha

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

polecam dokumentacje, zanin cokolwiek zaczniesz

e: random dziala tak: random(100) i poda ci liczbe pomiedzy 0, a 100

choose dziala tak: choose(1, 100) poda liczbe 0 lub 100

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0
Wait, what? Jestem prawie pewien że to działa jak wszędzie. W dokumentacji na ten temat nic nie ma. A chociażby robiąc grę na Pixel Heaven mój ostatni build (bez randomize()) był z takim seedem że gracz ginął w pierwszej sekundzie gry.

 

 

http://docs.yoyogames.com/source/dadiospic.../randomize.html

 

Please note, that when using the random number functions in GameMaker: Studio the initial seed is always the same, as this makes tracing errors and debugging far easier. Should you wish to test with true random, you should call this function at the start of your game.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

To wszystko i więcej znajdziesz w dokumentacji GM-a pod klawiszem [F1] (w oknie GM-a oczywiście), a przetłumaczoną wersję pod tym linkiem Dokumentacja. Działy są po prawej.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

dzięki wam wszystkim

 

ale czemu ten kod który napisałem był zły

nawet jak zrobiłem random(100) to też źle było

 

a wykombinowałem że jeśli mam path do bolidu ai to skopiuje go i ten drugi będzie wybierany losowo ale niestety tylko mój bot używa tego pierwszego path'a

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

bo losuje moze wylosowac tez 89.7384729

a irandom losuje liczby całkowite

choose wybiera z wpisanych wartości (10,20,30)- wybierze jedna z tych trzech liczb

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

Ten który podałeś ostatni?

GML
path_end = rai1

random = path_start = rai1

random = path_start = rai2

Przecież ten kawałek w ogóle nie ma sensu. Miałeś algebrę w szkole? xD

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

:rolleyes: :rolleyes: :rolleyes: xD

chodziło mi o to że jeżeli path się rozpocznie i mój bot przejedzie ten path to path_end(zakończy się path)i będzie wybierany losowo (random = path_start = rai1)

 

bo mi chdzi o to że po zakończeniu tego patha(wystartuje i dojedzie do końca)to żeby następny był wybierany losowo

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

random(), path_start() i path_end() to funkcje. Funkcjom nie przypisuje się wartości, one je zwracają na podstawie argumentów które podajesz w nawiasie. Sprawdzenie

GML
if(path_position=1)
powie czy obiekt pokonał całą drogę i dotarł do końca. Jeżeli się tak stanie wtedy możesz wylosować nowy path tak jak radzi kriso99, używając choose.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×