Fastbar
Powrót do strony głównej
Trzymaj pliki na gmclan.org!
Game Maker w pytaniach i odpowiedziach!
Polska dokumentacja
Tabela wyników ligi 24
Pobierz GM
Kategorie bazy plików
Pliki -> Game Maker -> Przykłady
Informacje o pliku: Przyszła pozycja gracza
Przykład pokazuje jak obliczyć przyszłą pozycję gracza na podstawie jego kierunku i prędkości. Przydatne jest to w grach typu Tower Defence, strategiach, TDS'ach.
rozmiar: 13 KB | autor: Uzjel
pobrań: 4665 | głosów: 12 | ocena: 7.33 oceń zasób
data dodania: 23.09.10 | dodał: Tymon
Komentarze
stron: 1

1


av

Makary155 (17:06, 24.09.2010)

Świetne! Wreszcie moi łucznicy będą trafiać w ruchomy cel

av

Dawidds (18:21, 24.09.2010)

Idea przykładu fajna, ale jednak zastosowany mechanizm sprawia że przy stałym ruchu gracza kościotrup nie zawsze trafia (chociaż i tak w większości trafia, a w tdsach nie ma co się z tym bawić bo i tak gracz będzie robił uniki) w cel. Nie mam pomysłu jak to wyjaśnić to daję obrazek:
img832.imagesha...64/fgfdgdfg.png

I teraz po kolei kroki, które wykona algorytm w tym przykładzie (czarne to kościotrup, niebieskie jabłko):
1. Sprawdzamy, w ilu klatkach strzała doleci do AKTUALNEJ pozycji gracza. Wynik - 4 klatki (taki przykład ofc). Czerwona linia na obrazku.
2. Obliczamy, na jakiej pozycji będzie gracz za tyle klatek, ile wyszło na wyżej. Niebieska linia na obrazku, ta pozycja gracza, która nam wyszła jest oznaczona jako puste niebieskie kółko.
3. Strzelamy w to puste niebieskie kółko. Zielona linia na obrazku.
//tutaj koniec algorytmu, ale obserwujmy dalszy przebieg zdarzeń
4. Niestety, wyszło tak, że strzale dojście do pozycji którą wyliczyliśmy zajęło 6 klatek (sprawdzaliśmy to w 1 punkcie, wtedy innymi danymi nie dysponowaliśmy), a nie 4. I przez te 6 klatek gracz zdążył ominąć trajektorię - różowe kółko.

Obliczanie pozycji, na której będzie gracz w momencie gdy trafi go strzała nie opiera się na dystansie do rzeczywiście tego punktu, gdzie trafi go strzała (choć szczerze sam nie mam pojęcia jakby to obliczyć, mógłby się wypowiedzieć jakiś ekspert : D), a na dystansie do gracza. A nas interesuje PRZYSZŁA pozycja gracza i to na niej powinniśmy oprzeć obliczenia - a nie na aktualnej.
Opieramy się na czerwonej kresce, a powinniśmy na zielonej.

Inna sprawa, że wychodzi na to, że aby obliczyć przyszłą pozycję gracza potrzebujemy pozycji gracza. Dlatego to takie ciekawe : D

av

Tymon (18:25, 24.09.2010)

Ale Ty uwzględniasz ruch przyspieszony którego nie ma w tym przykładzie.

av

Dawidds (18:25, 24.09.2010)

Nie chce mi się myśleć dokładnie jaki by to miało sens, ale logiczne wydawało by się zrobienie po prostu powiedzmy 5 iteracji - z których każda opierała by się na wyniku poprzedniej.
Czyli że rysunek który wyżej dałem to 1 iteracja - w drugiej program liczy, gdzie będzie gracz za 6 klatek (długość zielonej kreski, tą, którą właśnie obliczyliśmy). I wtedy przekazujemy do następnej iteracji, aby obliczyła, gdzie będzie gracz za (tutaj wynik tej 2 iteracji) klatek.

Całkowicie precyzyjne by to nie było, ale było by to już dużo większe przybliżenie.

av

Tymon (18:27, 24.09.2010)

Stary, komplikujesz sobie życie. Do podręcznika fizyki, marsz.

av

Dawidds (18:37, 24.09.2010)

Nie, nie uwzględniam przyspieszonego : D

Obliczamy, gdzie będzie gracz, gdy trafi go strzała - ale opieramy to na AKTUALNEJ sytuacji (aktualnym dystansie kościotrup-gracz, co przekłada się na wynik "w ilu klatkach strzała dotrze do celu", a nie na tej przyszłej. Nie mam pojęcia jak to lepiej wyjaśnić, także muszę liczyć, że kogoś oświeci i zrozumie, o co mi chodzi

Tyle tylko że mówię, do gier to w 100% wystarcza - ale tak czysto teoretycznie patrząc to ten przykład nie jest całkiem skuteczny

Zresztą najlepiej zwiększyć sobie ekran i się zauważy, że rzeczywiście gdy poruszamy się tak, że szybko zmienia się dystans jabłko-kościotrup (mijamy go w odległości gdzieś 150px) to szkielet w nas po prostu nie trafia (mimo, że nie zmieniamy kierunku ani prędkości).

av

Dawidds (18:38, 24.09.2010)

Chyba inne podręczniki od fizyki mamy

av

Tymon (18:46, 24.09.2010)

Dobra, już to widzę.

W alarmie szkielecika trzeba poprawić liczenie dist.

dist = point_distance(
x,
y,
obj_apple.x + lengthdir_x( obj_apple.apple_speed, obj_apple.apple_direction ),
obj_apple.y + lengthdir_y( obj_apple.apple_speed, obj_apple.apple_direction )
);

Zwykły błąd, bo w końcu ma strzelać w kierunku przyszłej pozycji jabłka, a nie obecnej.

Dawidds i tak masz pałę za sposób rozwiązania problemu.

av

Uzjel (20:01, 24.09.2010)

Napiszmy o tym pracę magisterską i chodźmy na piwo. Dla mnie tamto rozwiązanie jest wystarczające, bo snajper nie jest potrzebny

av

pablo1517 (16:45, 29.11.2010)

Dawidds, to nie wystarczy brać sobie odległości kosciotrup - przyszła pozycja gracza, zamiast kosciotrup - gracz? Wtedy masz wszystko policzone bezbłędnie, tak na chłopski rozum, bo z fizyki to ja same 2 mam :/

av

Dawidds (17:47, 29.11.2010)

Się obudziłeś : D
No ale jak już mamy się czepiać to na chłopski rozum wychodząc od tego co napisałeś:

1. Chcemy obliczyć [odległość kościotrup - przyszła pozycja gracza], potrzebujemy do tego ofc:
-pozycja kościotrupa (mamy)
-przyszła pozycja gracza (nie mamy, liczymy)
2. Do obliczenia [przyszła pozycja gracza] potrzebujemy:
-kierunku gracza (mamy)
-jego prędkości (mamy)
-czasu, jaki zajmie pociskowi dotarcie do tej [przyszłej pozycji gracza] - (nie mamy, liczymy)
3. Do obliczenia [czasu jaki zajmie pociskowi dotarcie do tej [przyszłej pozycji]] potrzebujemy:
-prędkości pocisku (mamy)
-dystansu jaki musi przebyć pocisk, czyli właśnie [odległość kościotrup - przyszła pozycja gracza] - no jak nieciężko zauważyć, zapętliliśmy się.

Myślę że trochę lepszy sposób na pokazanie tego niż to co pisałem ostatnio, ale i tak gadanie nad tym jest czystą głupotą bo w 95% przypadków pocisk mimo drobnej nie-precyzji (tak, wiem, słowotwórstwo - you're doing it wrong) trafi gracza, a w pozostałych 5% gracz zrobi unik i tyle ze snajperskich zdolności szkieletu, więc naprawdę nie ma o czym gadać. Czysto matematycznie technika jest nieprecyzyjna, ale w kontekście gier i tak w 100% wystarczająca.

I end of topic, bo nie dam rady tego lepiej wytłumaczyć a na pisanie aplikacji która to zademonstruje jestem zbyt leniwy.

stron: 1

1



Dodaj komentarz:
Treść:
W bazie mamy plików: 214
Menu
Panel użytkownika
Jesteś niezalogowany!

Nie masz konta? Zarejestruj się
Użytkownicy on-line
85 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 85, userów: 0, ukrytych: 0


0 użytkownik(ów) na gmczacie i 0 bot(ów)
Shoutbox
Fervi  (23:53, 30.03.17):
Jaki ostatnio był
Fervi  (23:53, 30.03.17):
To przez wyciek haseł
Nikas (22:56, 30.03.17):
Boże ale rak na forum yoyogames. Żeby założyć nowe konto, hasło musi mieć cyferki, literki, specjalny znacze i chuja w dupie. Hejtuje.
Ram (20:04, 30.03.17):
Dobry
I am vader (18:43, 30.03.17):
Dodałeś go, dzięki za pomoc.
Uzjel (18:33, 30.03.17):
I am vader, podeślij mi nick lub maila tej osoby, bo możliwe że została wzięta za bota i usunięta. Lub niech sprawdzi czy ma aktywne konto bo teraz kilka aktywowałem.
Uzjel (18:32, 30.03.17):
Przywróciłem normalną rejestrację, spodziewajcie się spambotów i napływu setek nowych aktywnych userów
Uzjel (18:30, 30.03.17):
Bo jakiś inny admin to włączył i miał pilnować
Penguin (18:15, 30.03.17):
Ja tez
PatrykPlayingPOLSKA (18:03, 30.03.17):
Również
Wojo (17:47, 30.03.17):
popieram
I am vader (17:16, 30.03.17):
Admin by sie ku**a przydal bo znajomy ma od 8 dni nieaktywne konto. Ciekawe ilu nowych tak stracilismy. No ja wiem ze spamboty są denerwujące, ale po to mamy modów, żeby je usuwali, może lepiej wyłączyć wymaganie potwierdzenia konta przez admina, skoro Uzjel nie ma czasu?
Nikas (13:04, 30.03.17):
Dzięki!
gnysek (12:29, 30.03.17):
YoYo Games / River Court, 5 W Victoria Dock Rd Dundee / Scotland DD1 3JT / United Kingdom
gnysek (12:29, 30.03.17):
Pełną skrzynkę? Hm, jako admin mialem 10000 miejsc
Nikas (12:10, 30.03.17):
Gnysek, bo chciałem na PW napisać ale masz pełną skrzynkę. Podasz adres do YYG? Bo myslę, że spoko do nich wysłać tą wersję pudełkową najthołxa.
Chell (19:27, 29.03.17):
przyganiał kocioł garnkowi
gnysek (15:36, 29.03.17):
Pfff "admini". Może będą udawać, że są ?
Fervi  (12:17, 29.03.17):
Może "HTML5 w Game Maker wreszcie poprawnie działa"
PatrykPlayingPOLSKA (22:17, 28.03.17):
Ciekawe co admini wymyślą na 1 kwietnia
Wojo (20:56, 28.03.17):
w sensie gratulacje
Wojo (20:56, 28.03.17):
zajebiście przemyślana ta kolekcjonerka graty
I am Lord (19:26, 28.03.17):
A niby każdy hejtował że nic z tego nie będzie bo to AGg studio miało jakąś guwno stronke napisaną na kolanie przez studenta a tu popatrz jest napracowanie
Nikas (19:18, 28.03.17):
Niespodzianka?
Nikas (19:17, 28.03.17):
XDDDD
I am Lord (19:14, 28.03.17):
Wydawca który ma tajemnice przed tobą? :d
Nikas (18:41, 28.03.17):
www.facebook.co...e=3&theater o kurwa ale rozjebali z tą kolekcjonerką dla prasy! mnie nie chcieli powiedzieć, ale soundtrack na kasecie rozjebał wszystko XD
PatrykPlayingPOLSKA (18:05, 28.03.17):
Jak by co to Chivalry: Medieval Warfare jest teraz darmowe store.steampowe...19640/?l=polish
Nikas (17:48, 28.03.17):
Oby częściej dopisywała.
I am vader (16:23, 28.03.17):
Piękną mamy pogodę na shitboxie dzisiaj
ANtY (15:07, 28.03.17):
forum.gmclan.or...mp;#entry443351 jest i nowy trailer
Ignatus (14:17, 28.03.17):
Twórcy gier nienawidzą go.Zarobił miliony na grach dzięki jednemu prostemu trickowi
Wojo (13:44, 28.03.17):
poka trailera a nie
Nikas (13:43, 28.03.17):
[SPRAWDŹ MEMY]
Nikas (13:43, 28.03.17):
Skisłen z jednego prostego tricku. xDDDD
ANtY (13:41, 28.03.17):
xDDD boże piękny dzień
Wojo (13:41, 28.03.17):
Korzystać z gotowych silników bo po to one są i mega ułatwiaja pracę
Wojo (13:40, 28.03.17):
klepiecie po parę lat jeden silniczek, który ostatecznie okazuje się być dnem, zamiast skorzystać z jednego prostego triku, który niedawno odkryłem
Wojo (13:40, 28.03.17):
No ja was też nie rozumiem klepiecie programiki po 14 godzin dziennie, ogarniacie matme i fizykę, sprawiacie wrażenie osób, które znaja game makera na wylot a mimo to nie widać efektów waszych prac
ANtY (12:55, 28.03.17):
ojć xD
Uzjel (12:54, 28.03.17):
Chciałem coś dodać, ale Nikas pozamiatał
Nikas (10:04, 28.03.17):
Masz na myśli poświęcenie czasu na jeden projekt, dopracowanie go w 100% i przede wszystkim skończenie?????? Nie no lol ziomuś, lepiej robić kilka miernych projektów i żadnego nie skończyć, chyba nie wiesz co odróżnia prawdziwego twórcę gier od samozwańczego. ::))))
ANtY (8:42, 28.03.17):
a nie lepiej skupić się na jednym czymś co ma największy potencjał? Chyba, że do żadnego z tych projektów nie jesteś przekonany to rozumiem z czego to się bierze
I am Lord (21:31, 27.03.17):
w zasadzie po wykonaniu obowiązków w domu zostaje mi na gamedev jeszcze mniej
I am Lord (21:29, 27.03.17):
źle odbija na mnie*
I am Lord (21:28, 27.03.17):
a ja bym chciał mieć czas by mieć chociaż 5h wolnego w dniu :/ muszę pomysleć o zmianie pracy bo to się źle odbija na
Threef (21:14, 27.03.17):
This. Tak bardzo
ΨΧΞ (21:10, 27.03.17):
choroba game jamowca - polega na niekonczeniu projektow. bardzo ciezko sie leczy, latami, przewlekla.
Threef (21:00, 27.03.17):
Zawsze polecam odcięcie internetu siekierą i zniesienie komputera z krzesłem do piwnicy. Teraz lato idzie więc w piwnicy i tak będzie chłodniej.
Ankieta
» Czy jesteś szczery odpowiadając w ankietach w Internecie?
Tak
Nie

GMCLAN to serwis o programie Game Maker i nie tylko.
Copyright © 2002-2017. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!

[ Czas generowania strony: 0.01297 sekund ] [ Liczba zapytań MySQL: 17 ]

thecrims Otserv List Otserv LyricsTown Harry Potter Serwery Gier
dev nodev