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
Akademia GMCLANu
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ń: 6471 | 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: 215
Menu
Panel użytkownika
Jesteś niezalogowany!

Nie masz konta? Zarejestruj się
Użytkownicy on-line
2 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 1, userów: 1, ukrytych: 0
Chell
Użytkownicy na czacie discord
MaxGaming (22:48, 18.06.18):
"to moja ulubiona stronka zaraz po gmclanie"
Wojo (22:48, 18.06.18):
w ogole skoncz typie spam w shoutboxie robic i pisac jakies bzdury zamiast wejsc na gmczat i siedziec w ciszy razem z 16 użytkownikami....
Wojo (22:47, 18.06.18):
nie wole bo tam nie wchodze takie zarty - serio
MaxGaming (22:46, 18.06.18):
Wolisz gmclan? Na prawdę jest on przed tą stronką?
Wojo (22:44, 18.06.18):
a to moja ulubiona stronka zaraz po gmclanie
MaxGaming (22:44, 18.06.18):
position_meeting - co zrobić żeby wykrywał mi maski także tych obiektów które są rysowane w gui? da się to zrobić?
Wojo (22:44, 18.06.18):
15 bez czytania
MaxGaming (22:42, 18.06.18):
nie no mordo żartuje oczywiście żeby nie bylo że jakiś złośliwy jestem
MaxGaming (22:42, 18.06.18):
15 z wliczona przerwą na czytanie komentarzy? xd
Wojo (22:42, 18.06.18):
no i czytam tylko komentarze i nikt sie tam niczym nie przejmuje
Wojo (22:41, 18.06.18):
pudło bo 15
MaxGaming (22:41, 18.06.18):
Wojo nie oszukjmy się, twoja przygoda na phubie pewnie trwa 30 sekund XDD
Wojo (22:40, 18.06.18):
i tak kilka ostatnich kartkowek poprawilem czytajac streszczenia bo bym nie zdał
MaxGaming (22:40, 18.06.18):
To jest raczej propozycja dla tych którzy lubią pracę nad sobą i ogólnie cieżką pracę a nie leniwienie się xd tacy to tylko do szkoły
Wojo (22:40, 18.06.18):
zamiast czytać małego księcia to teraz spędzam czas na robieniu tego co lubię czyli oglądaniu phuba
MaxGaming (22:38, 18.06.18):
Możesz przeczytać je samemu. Ja sam czytam lektury których nie przeczytałem w szkole jak mam wolny czas
Wojo (22:37, 18.06.18):
ale co mi po kasie jakbym nie znał przygód tomka sojera
MaxGaming (22:37, 18.06.18):
Nie rozumiem jak działa to draw_gui. Jak po prostu wstawię w room_editorze jakiś obiekt i dam mu w draw gui draw_self() to rysuje się jako gui, ale nie jest wykrywany w tym miejscu w którym jest ale w tym w którym go postawiłem na start(jakby maska się z nim nie przemieszcza) podczas użycia position_meeting
Wojo (22:37, 18.06.18):
ja gdybym 2 i 3 klasę liceum przesiedział w pracy to mialbym fajny pieniadz na rozruch
MaxGaming (21:55, 18.06.18):
kto po takiej szkole jest gotowy do pracy? Ja osobiście czuję się oszukany i czuję że zmarnowałem te 4 lata. CHociaż moze nie zmarnowałem bo mam już doświadczenie
MaxGaming (21:55, 18.06.18):
nikt nigdy nie wspomniał nawet słowem o jquery a co mówić dalej w szkole
MaxGaming (21:55, 18.06.18):
Uważam że jeśli ktoś nie wie do końca czego chce, albo ma bardzo słabe pojęcie o IT to spoko jest technikum. Jeśli ktoś zna się już na tym czym chce trochę to lepiej usiąść w domu i pouczyć się samemu z książek/kursów/tutoriali
MaxGaming (21:54, 18.06.18):
Robisz technika 4 lata i nikt praktycznie nie bierze go pod uwagę
MaxGaming (21:53, 18.06.18):
jak kończyłem czwartą jeden już jeździł w audi za 150 tyś a drugi w mercedesie za 80tyś nie mówiąc o reszcie hajsu
MaxGaming (21:52, 18.06.18):
Moich dwóch znajomych rzucili technikum na pierwszym roku, posiedzieli 2 lata w domu ucząć się różnych technlogii front-end i back-endowych i założyli firmę kiedy ja byłem w trzeciej klasie
MaxGaming (21:49, 18.06.18):
Ale jak uczyli ich pisać wszystko z pamięci to nie dziwne...
MaxGaming (21:49, 18.06.18):
no kurde kto tak pisze strony internetowe? czego to ma nauczyć? I ciągle uczenei na pamięć. Nikt ode mnie z klasy nie umiał w jakikolwiek sposób debugować kodu. Jak zapomnieli wstawić średnika to wszystko pisali od nowa albo płacz proszę panią nie działa
MaxGaming (21:48, 18.06.18):
Albo na kartce papieru kazali nam pisać stronki całe
MaxGaming (21:46, 18.06.18):
Lub program/stronę dla klienta
MaxGaming (21:45, 18.06.18):
dostawaliśmy pracę na 4h to robiłem ją w godzinę a przez 3h na przykład robiłem kurs C# z jakiś stronek
MaxGaming (21:45, 18.06.18):
A co robiłem na lekcjach? Siedziałem i uczyłem się na własną rekę zupełnie innych rzeczy. Ale przeszkadzało mi to ze muszę tam siedzieć i jeszcze czasami tracić czas na jakieś durne zadania na zaliczenie podczas gdy ja w tym czasie uczyłem się zupełnie czego innego już
MaxGaming (21:44, 18.06.18):
Więc to wcale nie było tak że rozdawali te szóstki
MaxGaming (21:44, 18.06.18):
ostatnio jakąkolwiek szóstkę z zawowdowych w tej szkole miał ktoś 4 lata przede mna
MaxGaming (21:44, 18.06.18):
I były to jedyne 6tki z zawodowych w ciągu ostatnich 4 lat historii tej szkoły
MaxGaming (21:43, 18.06.18):
Ja z zawodowych miałem same 6tki na koniec
MaxGaming (21:43, 18.06.18):
Ale szkoła w Polsce w ogóle nie ma uczyć. Program nauczania E12/E13/E14 sprawia że człowiek wie o każdej z tych dziedziń tylko kompletne podstawy i nie nadaje się nawet zaliczając na 100% wszystkie egzaminy do pracy w jakimkolwiek zawodzie jeśli sam się nie douczy
Wojo (21:42, 18.06.18):
w szkole niskie oceny miałem za zbędną teorię. Sprawdzian z lektury itp. A z wypracowań miałem piąteczki ale co z tego skoro o kant uja mozna to rostrzasc
Wojo (21:40, 18.06.18):
to już zależy od osoby. Jak ktoś jest ułomkiem, który uczy się tylko po to by zaliczyć przedmiot to faktycznie prezentują się debilnie. Brak elementarnej wiedzy jest coraz częstszy
MaxGaming (21:39, 18.06.18):
Potem się dziwicie że nie uważam szkół publicznych za jakkolwiek rozwojowe jeśli chodzi o zawody takie jak informatyk
MaxGaming (21:38, 18.06.18):
I to nie to że była jakaś sytuacja skomplikowana. Najprostszy w świecie reinstall windowsa...
MaxGaming (21:38, 18.06.18):
Mi na 4 roku technikum kolega płacił za reinstall windowsa 7 XD
Wojo (21:37, 18.06.18):
Max no bo jak mozna miec prawo do podejmowania decyzji po ukonczeniu 15 lat mam znajomych co studiują informatykę a na komputerach znają się gorzej ode mnie gdy byłem w gimnazjum
MaxGaming (21:36, 18.06.18):
Nauczycieli nigdy nie ma co słuchać jak mówią żeby nie podchodzić
MaxGaming (21:35, 18.06.18):
Zresztą 95% z nich nawet nie wie co to jest javascript więc się nie dziwie że potem takie papierki pracodawcy mają w poważaniu
Wojo (21:35, 18.06.18):
on ma chyba aspergera ale trzeba go zrozumieć i do niego dotrzeć. W zawodówce tak mu zależało na nauce, że przeniesli go do technikum. Do matury nie podchodził bo nauczyciele mu mowili ze i tak nie zda (on by sobie poradzil), a egzamin technika zawalił bo miał gorączkę niby
MaxGaming (21:35, 18.06.18):
U mnie z byłej klasy ani z roku wyżej nikt nie pracuje w niczym związanym z IT mimo technika
Wojo (21:33, 18.06.18):
chociaz moj znajomy nie ma matury ani technika mimo ze chodzil do technikum i pracowal w fabryce teraz chyba u mechanika
Wojo (21:32, 18.06.18):
jakieś minimalne podparcie to jest przy pierwszej pracy
MaxGaming (21:31, 18.06.18):
Jak myślicie, daje cokolwiek technik? Bo ja mam ale jakoś każdy mi mówi że w sumie to tak jakbym bez niczego był
Wojo (21:28, 18.06.18):
robiłem liceum a po liceum poszedlem do szkoly policealnej gdzie uczylem sie na technika informatyki
Ankieta
» Jakie kursy najchętniej widziałbyś na stronie ?
GM Studio
GM Studio 2
Godot
Construct

GMCLAN to serwis o programie Game Maker i nie tylko.
[ Polityka prywatności ]
Copyright © 2002-2018. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!
© 2002-2017 Ranmus (ranmus.pl), © 2017-2018 {=|=} fable_inside();

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