NukeBoards - Kreatywność przede wszystkim
FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  DownloadDownload
RejestracjaRejestracja  ZalogujZaloguj

Odpowiedz do tematu
Poprzedni temat :: Następny temat
[MMF2] Prosty strzał 360+ kierunków
Autor Wiadomość
Tropik 
Plutonowy


Posty: 79

4246 Prestiż
Wysłany: 27-05-2008, 17:44   

Mam ten przyład. Wiem że jest bardzo rozbudowany, dlatego próbuję go zrozumieć od podstaw - dlatego te pytania z mojej strony. Chcę wiedzieć jak wszystko działa :)
To jak z tą kolizją? Na jakiej zasadzie ona działa?
_________________
tamtomasz.pl
 
     
Minty 
Stwórczyni
omc dr fizyki


Pojedynki: być może
Pomogła: 259 razy
Posty: 3446

33789 Prestiż
Wysłany: 27-05-2008, 17:54   

Czytaj komentarze: "Kolizje - zmniejszanie współczynnika penetracji i kończenie ruchu, gdy osiągnie on limit", a poniżej warunki:
+ Fast Loop: Loop trigger #0
+ Pocisk: is over an obstacle background

A współczynnik penetracji pocisku to jego zmienna B :)
 
     
NeVermore 
Bohater


Pomógł: 3 razy
Posty: 62

5143 Prestiż
Wysłany: 27-05-2008, 21:16   

O, nie widziałem wczesniej tego tematu. Przedstawię wam mój własny sposób na strzał w 360+ kierunkach, bez wykorzystywania sinusów i cosinusów, równie dokładny co wasz.



Opiera się on na twierdzeniu Pitagorasa i Talesa :) Obliczamy R jako odległość gracza od celownika. Następnie ustalamy malutką odległość "c", którą ma pokonywać pocisk w klatce animacji lub kolejnym kroku loopa.Mamy więc stosunek c/R, który jest równy x/X (małe x to przesuniecie w jednej klatce, a duże X to róznica położeń gracza i celownika na osi x). Z prostgo przekształcenia wynika że: x = X*c/R, analogicznie Y. Nie martwimy się, co sie stanie przy wartościach 0* i 90* tak jak z sinusami i cosinusami, gdzie dochodzi prawdopodobnie do dzielenia przez 0 (choć nie wiem dokładnie jak wygląda kod w oryginalnym przykładzie). Pozatym nie musimy mieć pluginu do obliczania miary kata.

Wymysliłem ten system na potrzeby mojego planowanego FPP-ka, czyli Smitha, bo nie mogłem u siebie otworzyć pliku strzał 360+ :) - brak kcfloop.mfx (nadal go nie mam więc nie otworzę) Mysle że jest raczej poprawny i może komuś się przydać.
 
     
Tropik 
Plutonowy


Posty: 79

4246 Prestiż
Wysłany: 27-05-2008, 22:28   

Talesa nie miałem... Wycofali z gim. ten dział... :/
RomanX w Twoim przykładzie tak: penetracja następuje po ustawieniu zmiennej B na 0, ale nie w przykładzie Fenrira. Dlaczego w fenrirowym to nie działa?
_________________
tamtomasz.pl
 
     
jarlfenrir 
Generał brygady


Pomógł: 82 razy
Posty: 1731

37283 Prestiż
Wysłany: 28-05-2008, 00:13   

Tropik napisał/a:
Talesa nie miałem... Wycofali z gim. ten dział... :/
Dlaczego w fenrirowym to nie działa?

Bo ja zamierzałem pokazać jak zrobić PROSTY strzał i nawet nie myślałem o czymś takim jak penetracja.

NeVermore:
Myślałem o tym, co robisz, ale niestety zawsze miałem problem z obliczeniem odległości (twoje C). babrałem się w tym pod TGF-em jeszcze i był problem z pierwiastkami.

P.S. Twierdzenie Talesa średnio sie do tego ma, z grubsza wystarczy znajomość Pitagorasa (znaczy się jego twierdzenia).
 
     
NeVermore 
Bohater


Pomógł: 3 razy
Posty: 62

5143 Prestiż
Wysłany: 28-05-2008, 10:47   

Twierdzenie Talesa to właśnie stosunek X/x = R/c :) Te dwie proste z iksami są równoległe. Jeszcze nie uzywałem loopów, nie wpadłem na to że moga być przydatne w tym przypadku. U mnie C to jak na razie odległość pokonywana w kolejnej klatce animacji, trza to będzie poprawić, jak mi sie uda to dam znać czy działa jak należy
 
     
Tropik 
Plutonowy


Posty: 79

4246 Prestiż
Wysłany: 28-05-2008, 22:27   

Ale w sumie sam nie wiem dlaczego MMF nie widzi tego warunku:
Jeżeli strzał nachodzi na przeszkode
+ play loop "jakaś" ------------> pocisk destroy.

Co to za problem. MMF powiniem to czytać.
_________________
tamtomasz.pl
 
     
jarlfenrir 
Generał brygady


Pomógł: 82 razy
Posty: 1731

37283 Prestiż
Wysłany: 29-05-2008, 00:09   

Tropik napisał/a:
Ale w sumie sam nie wiem dlaczego MMF nie widzi tego warunku:
Jeżeli strzał nachodzi na przeszkode
+ play loop jakaś ------------> pocisk destroy.

Co to za problem. MMF powiniem to czytać.

Jedno co wiem na pewno, to to, że ma być:
On Loop "jakaśtam"
+ strzał nachodzi na przeszkodę --->Destroy
(ważne, by On Loop było pierwsze). Do tego pamietaj, że kulka zniknie dopiero po wykonaniu wszytkich pętli, więc warto razem z destroy dać warunek Stop Loop jakaś tam.

A tło na pewno ma zaznaczone, że ma być przeszkodą? Bo ja często zapominam o tym warunku.
 
     
Fadex 
Legenda
#4; #12; #18; #20; #21; #27


Pojedynki: nie
Pomógł: 105 razy
Posty: 1773

51612 Prestiż
Wysłany: 30-05-2008, 13:56   

IMHO z sinusami jest po prostu łatwiej - czasami wydaje się, że to sinus + cosinus zostały stworzone dla Advanced Math, a nie na odwrót...

NeVermore - tak naprawdę nigdy nie stosowałem twierdzenia Talesa (tak właściwie, to nawet go jeszcze nie przerabiałem), ale mimo to kiedyś myślałem nad tym rozwiązaniem. Problemem stało się wyliczenie "c", czyli tej najmniejszej długości...

W przykładzie ruchu, jaki podałem wcześniej nie następuje dzielenie przez sin lub cos. W sumie nie wiem nawet do czego mogłoby się to przydać :P
_________________
If it doesn't have to work, I can optimize any code to a runtime of zero. What's your superpower?
wat
 
 
     
NeVermore 
Bohater


Pomógł: 3 razy
Posty: 62

5143 Prestiż
Wysłany: 01-06-2008, 22:02   

Fadex - nie zrozumiałeś idei - "c", czyli odległość jaką przemierza pocisk w ciągu jednej klatki, ma być dana, sam ją sobie wymyślasz :) Znasz "c", obliczasz "R" masz dane duże "X" i "Y", a obliczasz małe "x" i "y". Jako że niektórzy nie mieliście jeszcze Talesa, oto jak dokładnie to zrobić:

R/c = X/x = Y/y - to właśnie zastosowanie twierdzenia Talesa

Jeśli chcemy obliczyć x, czyli przesunięcie pocisku na osi x w ciągu jednej klatki, to:

R/c = X/x => x = cX/R, y = cY/R

 
     
Minty 
Stwórczyni
omc dr fizyki


Pojedynki: być może
Pomogła: 259 razy
Posty: 3446

33789 Prestiż
Wysłany: 02-06-2008, 08:07   

X/R to definicja cosinusa, Y/R to definicja sinusa. Tak tylko wspominam :P
 
     
Tropik 
Plutonowy


Posty: 79

4246 Prestiż
Wysłany: 25-06-2008, 15:14   

A jeżeli chcę zrobić aby wrogowie posiadali również silnik 360 strzłu, to do każdeego wroga muszę dawać kolejne rozszerzenie Advancet Dir. ?
_________________
tamtomasz.pl
 
     
jarlfenrir 
Generał brygady


Pomógł: 82 razy
Posty: 1731

37283 Prestiż
Wysłany: 25-06-2008, 18:48   

Tropik napisał/a:
A jeżeli chcę zrobić aby wrogowie posiadali również silnik 360 strzłu, to do każdeego wroga muszę dawać kolejne rozszerzenie Advancet Dir. ?

A po kiego? AdvDir ma tylko obliczyć kąt między kulą i celem.
Podajesz wspólrzędne wroga, potem miejsca, gdzie strzela i masz już odpowiedni kąt. Potem musisz tylko sprawić, by kula wroga "działała" na tej samej zasadzie, co kula gracza.
 
     
Tropik 
Plutonowy


Posty: 79

4246 Prestiż
Wysłany: 01-07-2008, 15:24   

Cytat:
Potem musisz tylko sprawić, by kula wroga działała na tej samej zasadzie, co kula gracza.

to właśnie tutaj stoi problem. Próbowałem z wartościami a nawet flagami - nic! Działa tylko gdy stworzę 2 ADO i przekopiuję zdarzenia od playera do wroga zmieniająć w warunkach obiekty...
Chciałbym to wszystko na jednym Adv.Obj zrobić.
_________________
tamtomasz.pl
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

PSK Cytaty Klikibaza - kopia wszystkich klików Klikipedia - encyklopedia o tworzeniu gier Discord KlikCzat Zaproszenie
Daj piniondza Wielkie Muzeum Klikowe

Powered by phpBB modified by Przemo © 2003 phpBB Group