как да добавите откриване на попадения към куршуми


Отговор 1:

Първо започвам с това, че OpenGL беше предмет, който взех само за интерес и нямам много познания по компютърни науки като цяло. Но един лесен начин, по който виждам това, е, че светът на игрите е основно 2D екран. Представете си, че целта, която искате да изстреляте, е направена от самолети. Сега е възможно да получите 3D точката от 2D (има разпоредби в OpenGL). Всичко, от което се нуждаем, е обхватът на пистолета, сочещ в играта. От координатите x, y вземете X, Y, Z. Сега с това проверете дали X, Y, Z попада вътре в целевата равнина (в този случай правоъгълник или триъгълник).


Отговор 2:

Най-добрият начин е да се хвърли лъч от сблъсък. По този начин ще получите цялата информация, от която се нуждаете, за да обработите изстрела си от куршум: точка на сблъсък, нормален вектор в точката на удара (може да се използва за различни неща, като излъчване на частици в правилна диркция), полигон, който сте ударили, обект, който сте ударили. Излъчването на лъча за сблъсък трябва да работи върху вашия обект за разделяне на пространство, за да поиска бърз списък от обекти, които тествате, сблъсък с вашия лъч. Помислете, когато изграждате методи за откриване на сблъсък между сфера, кутия, цилиндър и други примитиви, за да добавите и лъч срещу примитивен ускорител. За изграждането на цялата система е необходима малко работа, но резултатите са възнаграждаващи.


Отговор 3:

Raycasting. Прожектирате лъч от цевта на пистолета и виждате дали лъчът се сблъсква с окото на друг герой. Много 3D библиотеки имат поддръжка за лъчеизлъчване.

Ето един като пример.