maly158 Opublikowano 2 Maja 2016 Udostępnij Opublikowano 2 Maja 2016 Witam Chciałbym wykorzystać w moim FPSie strzelanie bez generowania obiektu "pocisk" - przerobiłem już chyba wszystkie warianty rozwiązań z pociskiem ( zwykła kolizja i collision_line ), w każdym razie to nie to czego potrzebuję. A teraz konkretnie - czy da się zrobić taki system strzelania do przeciwników , aby polegał na sprawdzeniu położenia obiektu "wróg" względem celownika na ekranie (celownik np. krzyżyk na środku ekranu) + klik LPM ?? Z góry dzięki za pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Czołg Krymski Opublikowano 3 Maja 2016 Filar Społeczności Udostępnij Opublikowano 3 Maja 2016 Istnieje coś takiego jak raytracing, ale to wyższa szkoła jazdy. Możesz za to po prostu sprawdzać kąt między graczem, a wrogiem i od tego uzależnić to czy gracz celuje we wroga czy nie. To byłby prosty sposób, ale działałby tylko na jednej płaszczyźnie. Wystarczy od direction gracza odejmować point_direction(gracz.x, gracz.y,wróg. x,wróg. y) i zapisywac to sobie w jakiejś zmiennej u wroga i po prostu sprawdzać jeżeli ta zmienna jest większa od np. -30 i mniejsza od 30 to może być wróg postrzelony Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 3 Maja 2016 Udostępnij Opublikowano 3 Maja 2016 dla czego collision_line nie działało? E: nvm nie zauważyłem że 3d, podłoże masz płaskie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maly158 Opublikowano 3 Maja 2016 Autor Udostępnij Opublikowano 3 Maja 2016 Z collision_line mam podobny problem jak ze zwykłą kolizją, a mianowicie zdarza się dość często, że pocisk po prostu przelatuje przez wroga, tyle że w zwykłej kolizji wiem w czy jest problem - speed pocisku (jeżeli speed pocisku jest większy niż suma średnic pocisku i wroga to pocisk od czasu do czasu pocisk przeleci przez wroga ponieważ pocisk przemieszcza się skokowo, a nie punkt po punkcie). Natomiast dlaczego tak się dzieje w collision_line - nie mam zielonego pojęcie. Znalazłem na forum kilka rozwiązań z collision_line, ale wszystkie działają tak samo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 3 Maja 2016 Udostępnij Opublikowano 3 Maja 2016 Jeżeli pociągniesz linię od celownika na wprost na jakąś tam ustaloną odległość i collision line po drodze będzie miał parę obiektów wróg to kolizja odbędzie się z tym który ma najmniejsze ID. Pewnie stąd masz ten problem przenikania? Kolizja w twojej grze jest 2D? I opiera się na maskach, jak w grach top-down? Możesz zasymulować lot pocisku w pętli, tak jak to robi większość algorytmów strzelania z lasera. Nadając miejsce wylatywania pocisku i początkową prędkość w X Y Z. Przesuwał byś collision line w pętli ( na płaszczyźnie XY ) o ten wektor prędkości i sprawdzał maski + wysokość żeby uwzględnić Z. Tylko musisz zrobić coś żeby collision line ignorował obiekty z którymi ma kolizję na płaszczyźnie XY ale nie ma kolizji z wysokością Z. Może deaktywacja tych obiektów na czas działania tej pętli by pomogła w tym. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maly158 Opublikowano 3 Maja 2016 Autor Udostępnij Opublikowano 3 Maja 2016 Mój mechanizm strzelania uwzględnia wysokość lotu pocisku (Z) i w zwykłej kolizji działa mi wszystko świetnie ale pocisk jest za wolny - jak zwiększyłem jego speed to dzieje się to co opisywałem wcześniej. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 3 Maja 2016 Udostępnij Opublikowano 3 Maja 2016 Nie wiem czy rozumiem, ale jeśli będziesz sprawdzał kolizję pomiędzy aktualnym położeniem, a ostatnim, to by nie było problemu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maly158 Opublikowano 3 Maja 2016 Autor Udostępnij Opublikowano 3 Maja 2016 Pytasz o przypadek z normalną kolizją czy collision_line ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 4 Maja 2016 Udostępnij Opublikowano 4 Maja 2016 linia między xprevious, yprevious a x i y Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się