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ń: 5961 | głosów: 12 | ocena: 7.33 oceń zasób
data dodania: 23.09.10 | dodał: Tymon
Komentarze
stron: 1

1


av

Makary155 (15:06, 24.09.2010)

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

av

Dawidds (16: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 (16:25, 24.09.2010)

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

av

Dawidds (16: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 (16:27, 24.09.2010)

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

av

Dawidds (16: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 (16:38, 24.09.2010)

Chyba inne podręczniki od fizyki mamy

av

Tymon (16: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 (18: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 (15: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 (16: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: 215
Menu
Panel użytkownika
Jesteś niezalogowany!

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

5 użytkownik(ów) na gmczacie discord.com
Shoutbox
gnysek (11:14, 19.09.17):
Kodowanie... musiałbym przed każdym SQL do forum zmieniać kodowanie bazy, a potem je przywracać... do dupy z tym nowym forum, żaden to prezent
Uzjel (21:47, 18.09.17):
???
??? (21:38, 18.09.17):
;_;
I am vader (21:26, 18.09.17):
A, to YXE. Jego nick nie wyswietla sie poprawnie.
I am vader (21:25, 18.09.17):
Ciekawe kto to led.feen.us/lkx8xqvn.png
Wojo (10:59, 17.09.17):
chell śmiechłem
Chell (19:35, 13.09.17):
exp ty masz ojca poza kadrem albo cos?
exp (19:03, 13.09.17):
gmclan mnie wychował
exp (19:03, 13.09.17):
ehh
Wojo (12:50, 13.09.17):
Jak tak dalej pójdzie to będę musiał znaleźć realnych kolegów
Wojo (12:49, 13.09.17):
Tu nic nigdy nie działa. Cały czas stoimy w miejscu i nawer nie zapowiada się na korzystne zmiany
gnysek (9:41, 13.09.17):
Niestety, aby ten fix działał, trzeba wejść raz na forum i dopiero drugie wejście będzie OK (więc po fixie jeszcze raz mógł być problem)
gnysek (9:41, 13.09.17):
MaxGaming - bo dodałem usuwanie ciasteczek z domeny .forum.gmclan.org automatycznie. Czyli to jednak to było problemem.
SimianVirus7 (14:08, 12.09.17):
Dzięki
exp (11:15, 12.09.17):
możesz
SimianVirus7 (10:13, 12.09.17):
Tak
exp (9:50, 12.09.17):
czyli po prostu chcesz zrobić grę i wrzucić ją do internetu za darmo?
SimianVirus7 (9:03, 12.09.17):
Mi się śniło, że podpadłem rybnemu gangowi SpongeBoba ale nie po to się zalogowałem, żeby o tym powiedzieć mam pytanie, może dość głupie, ale prawo w Polsce też potrafi takie być. Czy jeśli chce swoją grę rozdawać za darmo i nie brać z tego absolutnie żadnych opłat (nawet z reklam), to mogę ją publicznie udostępniać? Skarbówka lub jakiś inny organ państwowy się do mnie nie przyczepi?
Chell (7:17, 12.09.17):
wpadłem tylko żeby napisać ze śniło mi się że zalogowałem się na 4tk
MaxGaming (17:49, 11.09.17):
Wreszcie mogę się zalogować. Odkąd weszło to nowe forum to nic nie działa jak powinno. Jak klikam w nowości z forum też raz mnie odsyła na główną forum a raz do tematu. PS mam dość proste wydaje mi się pytanie z MySQL którego ja osobiście znam póki co tylko absolutne podstawy. forum.gmclan.or...-i-subkategorii
doctor (18:49, 9.09.17):
Chociaż oficjalnie jest jakiś GDL, może w tym da się klepać (i 3 inne dokumentacje)
doctor (17:46, 9.09.17):
Przypomina nawet nieźle GM, niestety nie ma kodu (trzeba wyklikiwać jakby kod - czuję się jakbym grał w Patapony) - niby sporo funkcji jest (nawet 3D), ale wyklikiwać ...
doctor (17:45, 9.09.17):
Nowe konto xd Na stare wbić nie mogę :/ Jak ktoś szuka coś a'la Game Maker, czyli program do robienia upośledzonych gier to znalazłem GDevelop
Ignatus (20:21, 8.09.17):
Apropo Gnyska dziś czytałem temat o Almoraoczątek- we wstępnie jest "Gra ukaże się w drugiej połowie roku, na PC, a potem na iPada (możliwe, ze będzie to pierwsza produkcja w GameMaker:Studio 2)." A to temat z 2012. Gnysek jak długo trwały te beta testy GM2 ?
Threef (19:55, 8.09.17):
To że gnysek zrobił swego czasu grę o takiej nazwie.
Ignatus (19:52, 8.09.17):
Co to za crap? Co zwróciło Twoją uwagę Threef?
Threef (18:04, 8.09.17):
veggiestew.itch.io/farmer-fran Hmm...
SimianVirus7 (21:48, 7.09.17):
wybacz moje budowanie zdań ale dzisiejszy dzień w pracy dał mi się we znaki
SimianVirus7 (21:47, 7.09.17):
no właśnie się zastanawiałem nad kompilacją i dotychczas myślałem, że największy wkład ma w to procesor
Threef (21:46, 7.09.17):
A SSD pozwala skrócić czas kompilacji x20
Threef (21:46, 7.09.17):
Kilka metrów od PGA
Threef (21:45, 7.09.17):
GIC jest w osobnym budynku
SimianVirus7 (21:39, 7.09.17):
Bo ja na PGA byłem tylko raz i to chyba z 3 lata temu, jak był "powrót legendy". Ten cały GIC (dane ZTG), też będzie się znajdował w tym wielkim centrum? czy będzie to widocznie oddzielone
SimianVirus7 (21:38, 7.09.17):
O właśnie
SimianVirus7 (21:32, 7.09.17):
No proszę, tego nie brałem po uwagę. Nigdy nie miałem do czynienia z SSD więc to może dlatego
Threef (21:30, 7.09.17):
Ważne jest tylko wsparcie Pixel Shader 3.0. A zamiast o procesorze i karcie graficznej myśl o SSD
SimianVirus7 (21:05, 7.09.17):
Dlatego pytam się bardziej ogarniętych w tym temacie. Budżet około 1500zł +- 300zł
SimianVirus7 (21:05, 7.09.17):
Mam zamiar kupić jakiegoś laptopa stricke pod game maker. Mam dylemat, czy bardziej patrzeć na procesor pod kątem obliczeń, czy na kartę graficzną. Na pierwszą myśl przychodzi mi lepszy procek, bo przecież do gier 2D (szczególnie spod moich rąk) nie potrzeba jakieś dobrej karty ale z drugiej strony, karta graficzna także wspiera procesor co do obliczeń i wykonuje je może nawet lepiej niż sam procesor. Nie jestem ekspertem, pisze co wiem, a moja wiedza może być błędna.
I am vader (18:41, 7.09.17):
Monaco: Drugie gówno też jest za darmo na steam.
I am vader (18:31, 7.09.17):
Skyrim to gówno i tak
Threef (18:20, 7.09.17):
Free weekend Skyrima! :o
Ignatus (21:10, 6.09.17):
Działa pięknie.Dzięki
Threef (19:08, 6.09.17):
I poszedł!
Threef (18:43, 6.09.17):
Igantus twój problem jest z obracaniem. Zaraz spróbuję Ci odpowiedzieć w temacie
Ignatus (18:39, 6.09.17):
Jak narysować prostokąt 2x większy od aktualnego view?
ANtY (12:07, 6.09.17):
na pewno?
Wojo (8:05, 6.09.17):
I zawsze korzystam z incognito
Wojo (8:05, 6.09.17):
Ja robię tak samo exp
Threef (6:42, 6.09.17):
Szalone
Chell (5:36, 6.09.17):
praktyczne
Ankieta
» Jakiej wersji GameMakera głównie Używasz?
GameMaker: Studio 2
GameMaker: Studio
GameMaker 8.1 i starsze
Żadnej

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!
© 2002-2017 Ranmus, © 2017 {=|=} fable_inside();

[ Czas generowania strony: 0.02352 sekund ] [ Liczba zapytań MySQL: 14 ]