Як реалізувати рушницю в грі?


14

Пістолети та кулемети легкі - у вас можуть просто кулі, що летять у певному напрямку, тому я це вже реалізував. З іншого боку, рушниця завдає шкоди будь-чому в певній області, що має вигляд конуса. Як я повинен це здійснити? У мене є тут кілька пропозицій, але я можу скористатись порадою:

  • Розбийте кулю на кілька маленьких кульок, які роблять менше шкоди самим собі, але летять в аналогічному напрямку (швидше уражається ближчий ворог)
  • Не використовуйте кулі - просто наведіть на себе частину ефекту пострілу і обчисліть, скільки завдають вороги на основі положення / орієнтації тощо.
  • Майте велику невидиму кулю (наприклад, кубик), яка пошкоджує речі, а також ефект частинок, завдяки якому буде схоже, що це насправді постріл із рушниці.

Спасибі заздалегідь!


Ці варіанти справедливі (хоча перший, чому б просто не почати з декількох куль?), І рішення засноване на вашому ігровому дизайні.
congusbongus

Пов'язане: Точність та формула відстані та "вогнева конус" можуть бути хорошим пошуковим терміном для цього.
MichaelHouse

Відповіді:


21

Більшість ігор реалізують рушниці як зброю, яка вистрілює відразу кілька снарядів, але кожен з певною рандомізацією кута, який вони залишають акторові. У більшості сучасних стрільців від першої особи майже вся зброя має принаймні деяке розповсюдження для кожного пострілу, який робить вогонь, щоб зробити їх менш точними на дальній дистанції, тому та ж реалізація може бути використана для рушниць.

Проста реалізація: Коли ви хочете розкинутись на 10 ° і гравець дивиться в напрямку 0 ° вертикально і 50 ° по горизонталі, снаряди залишать їх під кутом від -5 ° до + 5 ° по вертикалі і між 45 ° і 55 ° по горизонталі.

Краща реалізація: розкладіть снаряди не прямокутно, а по круговій області навколо перехрестя гравця.

Вбачається, що знижена ефективність на дальній відстані є результатом розкидання снарядів, а це означає, що далекі та малі цілі не будуть вражені всіма ними. Коли ви хочете ще більше підкреслити це, щоб зробити вашу рушницю чистою зброєю малої дальності, ви також можете зменшити пошкодження кожного снаряда для кожного ігрового логічного кадру, який він пересуває.

У стрільцях зверху вниз або в бічній стрілці прокручування рідше розповсюджується на всю зброю, тому що ігрова область занадто мала для цього, щоб мати сенс, але коли ви хочете, щоб зброя, як рушниця, - це інша справа і те саме Техніка може бути використана, просто вам не потрібно дбати про 3-й вимір. Крім того, ви могли просто вистрілити снаряди під фіксованим кутом, як -6 °, -4 °, -2 °, 0 °, 2 °, 4 °, 6 °. У 2d контексті це не виглядатиме так штучно, як у 3d-контексті, і геймеру, що викликає виклики, сподобається, оскільки це зменшує шанси.


Краща реалізація так само проста. Перший підхід вимагає двох випадкових кутів (горизонтальний та вертикальний), як і другий (поза осі [0, + 5 °] та обертання вздовж осі [0, 360 °])
MSalters

@MSalters Це не рівномірно розподіляє снаряди по колу. Натомість він концентрує їх навколо осі. Це може бути, а може і не бути наслідком, якого ви хочете досягти. Щоб отримати рівномірний випадковий розподіл у колі, дивіться цю відповідь .
Daniel AA Pelsmaeker

@Virtlink: правильно, хоча однакова щільність ймовірностей всередині кола - це не те, на що я б пішов. Звичайний розподіл, як правило, найкраще підходить для таких предметів фізики, і це також особливо легко зробити: просто поширюйте значення D за допомогою 1D нормального розподілу, а значення φ з таким же нормальним розподілом масштабується на ϑ. Не потрібно йти до подвійно-полярних координат.
близько

На цій сторінці обговорюється розповсюдження дробовиків , ви можете подивитися і подивитися, що вони роблять.
AJMansfield
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.