|
[TGF] Strzał 360 stopni |
| Autor |
Wiadomość |
jarlfenrir
Generał brygady
 
Główny edytor: 
Drugi edytor: 
Pomógł: 82 razy Posty: 1731
37283 Prestiż
|
Wysłany: 22-09-2006, 02:01 [TGF] Strzał 360 stopni
|
|
|
Jak zrobic strzał w 360 kierunkach (albo wiecej)?
Prosiłbym raczej o słowne objaśnienie, albo jakisbardzo przejrzysty przykład.
Sam zrobiłem coś takiego (bazuje to na twierdzeniu pitsagorasa i talesa) ale ie jest to efekt zadowalajacy mnie. Bo mało dokładnie sprawdza kolzije pocisku z obiektami (im dokładniej, tym strzał w rzecyzwistosci jest w mniejszej ilości kierunków, oraz pocisk porusza sie wolniej). |
|
|
|
 |
Fanotherpg
Porucznik I'm livin' proof
 
Główny edytor: 
Drugi edytor: 
Pojedynki: tak
Skype: 
Pomógł: 8 razy Posty: 821
14370 Prestiż
|
Wysłany: 22-09-2006, 10:03
|
|
|
| Niejaka strona NukeSoft'u i dział silniki, adres to bodajże www.nukesoft.xn.pl . Przy okazji, dlaczego nikt nie wykorzystuje polecenia szukaj, lub nie przegląda zasobów :doubt: ?? |
_________________ Indie since 1997. |
|
|
|
 |
jarlfenrir
Generał brygady
 
Główny edytor: 
Drugi edytor: 
Pomógł: 82 razy Posty: 1731
37283 Prestiż
|
Wysłany: 22-09-2006, 16:21
|
|
|
| Fanotherpg napisał/a: | | Niejaka strona NukeSoft'u i dział silniki, adres to bodajże www.nukesoft.xn.pl . Przy okazji, dlaczego nikt nie wykorzystuje polecenia szukaj, lub nie przegląda zasobów :doubt: ?? |
Użyłem polecenia szukaj!
No i prosiłem raczej o słowne objaśnienie niz przykład, bo juz widzuałem chyba niemal wszystkie ogólnodostepne przykłady na ten temat. |
|
|
|
 |
Fanotherpg
Porucznik I'm livin' proof
 
Główny edytor: 
Drugi edytor: 
Pojedynki: tak
Skype: 
Pomógł: 8 razy Posty: 821
14370 Prestiż
|
Wysłany: 22-09-2006, 17:07
|
|
|
| Fenrir napisał/a: |
No i prosiłem raczej o słowne objaśnienie niz przykład, bo juz widzuałem chyba niemal wszystkie ogólnodostepne przykłady na ten temat. |
1 post:
| Fenrir napisał/a: | | Prosiłbym raczej o słowne objaśnienie, albo jakisbardzo przejrzysty przykład. |
A co do sposobu bez żadnych rozszerzeń:
User clicks -> Create 'bullet' Set A value to XMouse Set B Value to YMouse
i zaleznie od pozycji X/Y pocisku dodawaj/odejmuj odpowiednia wartosc do pozycji... jeśli to dobrze zrobisz to bedzie to bardzo dokładny strzał w 360o... |
_________________ Indie since 1997. |
|
|
|
 |
jarlfenrir
Generał brygady
 
Główny edytor: 
Drugi edytor: 
Pomógł: 82 razy Posty: 1731
37283 Prestiż
|
Wysłany: 22-09-2006, 17:40
|
|
|
| Fanotherpg napisał/a: | | Fenrir napisał/a: |
No i prosiłem raczej o słowne objaśnienie niz przykład, bo juz widzuałem chyba niemal wszystkie ogólnodostepne przykłady na ten temat. |
1 post:
| Fenrir napisał/a: | | Prosiłbym raczej o słowne objaśnienie, albo jakisbardzo przejrzysty przykład. |
A co do sposobu bez żadnych rozszerzeń:
User clicks -> Create 'bullet' Set A value to XMouse Set B Value to YMouse
i zaleznie od pozycji X/Y pocisku dodawaj/odejmuj odpowiednia wartosc do pozycji... jeśli to dobrze zrobisz to bedzie to bardzo dokładny strzał w 360o... |
Chyba myśliszmniej wiecej o tym, co ja anzwałem w pierwszym poście mało dokładnym strzałem. Opiszę na czym to polega i najzwyej spróbujecie powiedzieć, co robię źle.
Sprawdzam różnice w pozycji X i Y miedzy celem, a postacią.
Kula ma sie poruszać co 5 pikseli, wobec tego tworzę trójkąt o tym samym kącie, co ten utworzony między celem i postacią, ale o przeciwprstokątnej równej 5. Wychodzi mi wzór:
X1=5X/(PIERWIASTEK(Y^2 + X^2))
I analogicznie dla Y.
Nie jest to dokłądny strzał w 360 stopniach, gdyż TGF przy dzieleniu zaokragla wyniki do całości. Mógłbym zrobić, że kula porusza sie co 10 pikseli, bo wówczas uzyskam teoretycznie dwa razy wiecej mozliwych kątów lotu kuli, ale tm samym stracę na dokładności sprawdzania kolizji (jeśli oniekt aktywny będize miał mniej niż 10 piskeli szerokości, to kula może go po porstu przeskoczyć).
No i jeszcze jest kwestia przyśpieszenia kuli, bo teoretycznie przy rucho co 5 piskeli kula będzie potrzebowałao 1,28 sekundy na pokonanie całej planszy. |
|
|
|
 |
Fadex
Legenda #4; #12; #18; #20; #21; #27
 
Główny edytor: 
Pojedynki: nie
Pomógł: 105 razy Posty: 1773
51612 Prestiż
|
Wysłany: 22-09-2006, 17:43
|
|
|
| Jedna precyzyjna odpowiedź: Do liczenia użyj A Math, a do szybkości kuli fast loopa. |
_________________ If it doesn't have to work, I can optimize any code to a runtime of zero. What's your superpower?
wat |
|
|
|
 |
Tasmpol
Bohater young god
 
Główny edytor: 
Pomógł: 14 razy Posty: 955
24606 Prestiż
|
|
|
|
 |
jarlfenrir
Generał brygady
 
Główny edytor: 
Drugi edytor: 
Pomógł: 82 razy Posty: 1731
37283 Prestiż
|
Wysłany: 22-09-2006, 18:48
|
|
|
| Tasmpol napisał/a: | http://fabrykagier.phpnet.us/2004/kursy/4.html
O to chodzi? To chyba nie jest łatwe |
Racja, nie jest łatwe. Nie za bardzo to rozumiem, co tam jest opisane, ale będę próbował. |
|
|
|
 |
Fanotherpg
Porucznik I'm livin' proof
 
Główny edytor: 
Drugi edytor: 
Pojedynki: tak
Skype: 
Pomógł: 8 razy Posty: 821
14370 Prestiż
|
|
|
|
 |
Ploo
Chorąży
 
Główny edytor: 
Pomógł: 8 razy Posty: 288
8853 Prestiż
|
Wysłany: 26-05-2007, 13:00
|
|
|
Znalazlem gdzies na dysku....
http://www.plooscva.webd....otingEngine.rar
Plik .mfa do MMF2 i potrzebujesz Advanced Math 2. Tlumaczyc mi sie nie chce.
A masz, napisze takie cos.
Obiekt
A potem zrob cos takiego
Ustaw X obiektu na cos(wartosc A obiektu) i Ustaw Y obiektu na sin(wartosc A obiektu)
Potem zrob cos w stylu Always>dodaj jeden do wartosc A.
cos() i sin() sobie wykombinuj z AM2.
Poeksperymentuj z tym i jak opanujesz sin i cos to sam wytrzasnij sobie strzelanie, nie jest trudno.
Plooscva |
|
|
|
 |
AlexJ
Plutonowy
 
Pomógł: 2 razy Posty: 86
2018 Prestiż
|
Wysłany: 26-05-2007, 14:57
|
|
|
A ja ci powiem tak:
Masz jakąś tam zmienną kąta: Dir to będzie u mnie.
Uruchamiasz tam sobie pętlę, i jak robisz to w TGF to używająć Adv Math 2 liczysz, a jak MMF 1.5/2 to normalnie (wbudowanymi funkcjami).
Kod: | Na pętlę "strzal":
- Ustaw pozycję X obiektu "pocisk" na X("pocisk")+(sin(Dir)*4)
- Ustaw pozycję Y obiektu "pocisk" na Y("pocisk")+(cos(Dir)*4) |
Oczywiście, kolizje itp. to sobie sam zrobisz, dokładność ruchu do 4 px. Jak nie pomnożysz to zmniejsza się liczba kątów z powodu zaokrąglania tego wyniku. Można to pominąć, ale... Powinno działać, chyba 4px to nie tak źle.
Tak działa silnik chodzenia w mojej grze i jestem z niego zadowolony.
Edit: Plooscva, nie wiem o co ci chodziło, żeby ustawiać X pocisku na sinusa zwiększającej się wartości i Y na cosinusa zwiększającej się prędkości? Czy tam na odwrót. Coś mi tu nie pasuje xD. |
_________________ Error 404: Błąd. Opisu nie znaleziono.
PS. Oryginalne, nie?
C++'s Cool. |
| Ostatnio zmieniony przez AlexJ 27-05-2007, 11:54, w całości zmieniany 1 raz |
|
|
|
 |
Ploo
Chorąży
 
Główny edytor: 
Pomógł: 8 razy Posty: 288
8853 Prestiż
|
Wysłany: 26-05-2007, 15:08
|
|
|
Czy ja powiedzialem ze to jest strzelanie? Powiedzialem mu jak uzyc funkcji trygonometrycznych, wtedy by sam zrozumial a gdy by zrozumial to by sam doszedl do strzelania. W taki sposob bedzie duzo korzystniej gdyz najwiecej sie nauczy i najwiecej zrozumie.
Plooscva |
|
|
|
 |
jarlfenrir
Generał brygady
 
Główny edytor: 
Drugi edytor: 
Pomógł: 82 razy Posty: 1731
37283 Prestiż
|
Wysłany: 26-05-2007, 15:47
|
|
|
| Plooscva napisał/a: | Czy ja powiedzialem ze to jest strzelanie? Powiedzialem mu jak uzyc funkcji trygonometrycznych, wtedy by sam zrozumial a gdy by zrozumial to by sam doszedl do strzelania. W taki sposob bedzie duzo korzystniej gdyz najwiecej sie nauczy i najwiecej zrozumie.
Plooscva |
Ale ja wszytsko rozumiem. Nie wiem tylko, dlaczego jak juz cos zrobię, to TGF/MMF2 sie po prostu zawiesza na moim ruchu. I ja raczej używam do tego tangensa.
Mam jeszcze jedno pytanie: da sie zrobić strzał 360 stopni za pomocą rozszerzenia Movelt? Mogę przesunąć objekt po docniku lufa-celownik, ale co zrobić, by objekt dalej leciał już sam? |
|
|
|
 |
Minty
Stwórczyni omc dr fizyki
 
Główny edytor: 
Drugi edytor: 
Pojedynki: być może
Pomogła: 259 razy Posty: 3447
33795 Prestiż
|
Wysłany: 26-05-2007, 17:15
|
|
|
Przecież w MMF i MMF2 nie potrzeba żadnych dodatków do zrobienia takiego ruchu, mają te funkcje wbudowane (szybkie pętle i sin/cos).
Najprostsza rzecz związana z takim ruchem to ta: http://www.romanx.kosa.net.pl/down/360mv.zip
- wszystko widać jak na dłoni.
Najmniej prosta to ta:
http://www.romanx.kosa.net.pl/down/strzal+.zip
| Fenrir napisał/a: | | da sie zrobić strzał 360 stopni za pomocą rozszerzenia Movel |
Nawet nie warto próbować
| Fenrir napisał/a: | | TGF/MMF2 sie po prostu zawiesza |
Zła ilość pętli? Daj 13 dla prędkości porównywalnej z TGF-owymi (104 jednostki). |
|
|
|
 |
AlexJ
Plutonowy
 
Pomógł: 2 razy Posty: 86
2018 Prestiż
|
Wysłany: 27-05-2007, 12:15
|
|
|
A przecież ja mówiłem, że jak to w TGF, to trzeba rozszerzenie, a jak w MMF 1.5/2 lub TGF2 to nie trzeba, bo mają trygi wbudowanie . Teraz wyjaśniłem posta trochę xD. (Chyba że nie o to ci chodziło, tylko o tego MoveIt). A mój sposób powinien jak najbardziej działać. Mogę też sypnąć czymś takim (nie do końca dokładne, ale przyzwoite (i moje ;D) i na dodatek tylko do MMF2): http://sonter.goin.pl/files/pdp.mfa
- pokazuje ruch w teoretyczno-praktycznych 360 stopniach do miejsca, gdzie sobie klikniesz. Może się przyda xD. |
_________________ Error 404: Błąd. Opisu nie znaleziono.
PS. Oryginalne, nie?
C++'s Cool. |
|
|
|
 |
|
|