Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2015, 15:49   #1
ShiroAkuma
Новичок
Джуниор
 
Регистрация: 26.01.2015
Сообщений: 1
Сообщение Реализация стрельбы в шутерах.

Как реализуется стрельба в шутере. Что такое выстрел, пуля, точность оружия. Что такое вообще "стрельба" в шутере. Есть ли различие между шутерми от 1-ого лица и 3-его лица, между сетевым(ММО) и не сетевым.

Прошу не сильно углубляться в "программные дебри" и помидоры не бросать. Сам не программист и ни когда этим не занимался.
ShiroAkuma вне форума Ответить с цитированием
Старый 28.01.2015, 15:53   #2
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Цитата:
Сам не программист
Объяснить не программисту тонкости программирования стрельбы. Это как вообще?
WinCoder вне форума Ответить с цитированием
Старый 28.01.2015, 17:20   #3
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,378
По умолчанию

Цитата:
выстрел
функция (метод)
Цитата:
пуля
объект
Цитата:
точность оружия
свойство (поле) объекта Оружие
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 28.01.2015, 19:24   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цель-то какая? Что вы хотите, зачем вам это?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.01.2015, 19:37   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Что такое вообще "стрельба" в шутере.
Ну что такое баллистика ты знаешь?
Или хотя бы как происходит расчет лучей (он же raytrace rendering) для определения интерсекции с обьектом?
Цитата:
Есть ли различие между шутерми от 1-ого лица и 3-его лица, между сетевым(ММО) и не сетевым.
Есть. Положение основной камеры. На физику это не влияет.

P.S. поправил название расчета лучей.
I'm learning to live...

Последний раз редактировалось Stilet; 29.01.2015 в 13:53.
Stilet вне форума Ответить с цитированием
Старый 29.01.2015, 13:49   #6
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

трассировку лучей изучайте
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 06.02.2015, 18:59   #7
NIKOLAYY2
Форумчанин
 
Регистрация: 23.12.2014
Сообщений: 220
По умолчанию

Цитата:
ShiroAkuma Как реализуется стрельба в шутере. Что такое выстрел, пуля,
Прошу не сильно углубляться в "программные дебри"..
Ну по идее в простых случаях пуля в игре это просто квадратный кусочек полигона, канвы, прямоугольника изображения, которая знает свои начальные координаты и может перемещатся в некотором направлении используя сообщения системного таймера.
NIKOLAYY2 вне форума Ответить с цитированием
Старый 06.02.2015, 19:42   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
и может перемещатся в некотором направлении
Ну да. А потом окажется что автор хочет отражений, касательных и потери убойной силы по расстоянию )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.02.2015, 19:58   #9
NIKOLAYY2
Форумчанин
 
Регистрация: 23.12.2014
Сообщений: 220
По умолчанию

Ну это ему уже сложно будет.
А так видимо на каждое условие ему пришлось бы код описывать.

Замерять рсстояние откуда пуля вылетела и с каким полигоном и через какое расстояние столкнулась
Если с "зеркалом" - то лететь в обратном направлении
Если со "стеной" то исчезнуть и тд.
NIKOLAYY2 вне форума Ответить с цитированием
Старый 07.02.2015, 08:43   #10
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

Основные две технологии, использующиеся для программирования компьютерной графики это DirectX и OpenGL. В прошлом году Microsoft объявило о предварительном выпуске DirectX 12 для разработчиков компьютерных игр.

Движение пули в заданном направлении реализуется с использованием умножения матриц и векторов. Векторное пространство.

Матрица масштабирования задается в виде
sx 0 0 0
0 sy 0 0
0 0 sz 0
0 0 0 1

Данная матрица позволяет разместить вершины по осям координат.

Матрица трансляции задается в виде
1 0 0 0
0 1 0 0
0 0 1 0
tx ty tz 1
для того, чтобы при умножении матрицы A на матрицу трансляции получалась матрица A1 с новыми координатами объекта.

Матрица вращения пули задается в виде матриц R1, R2, R3 вращения
1 0 0 0
0 cost sint 0
0 -sint cost 0
0 0 0 1

cost 0 -sint 0
0 1 0 0
sint 0 cost 0
0 0 0 1

cost sint 0 0
-sint cost 0 0
0 0 1 0
0 0 0 1

где t угол поворота по оси координат

Для вращения по нескольким координатным осям производится умножение матрицы A на несколько матриц вращения R1, R2, R3

Умножение матриц не коммутативная операция.

Если задан вектор
x1 y1 z1 1
описывающий точку, то при умножении вектора на матрицу трансляции
1 0 0 0
0 1 0 0
0 0 1 0
tx ty tz 1
получим следующий вектор, описывающий новое положение точки в пространстве
x1+tx y1+ty z1+tz 1

Полигон это набор из трех точек с координатами { (x1, y1, z1), (x2, y2, z2), (x3, y3, z3) }.
По трем точкам строится уравнение плоскости Ax + By + Cz + D где A, B,C,D вычисляются по формулам

A = det ( a2, a3, 1.0, a5, a6, 1.0, a8, a9, 1.0);
B = - det ( a1, a3, 1.0, a4, a6, 1.0, a7, a9, 1.0);
C = det ( a1, a2, 1.0, a4, a5, 1.0, a7, a8, 1.0);
D = - det (a1, a2, a3, a4, a5, a6, a7, a8, a9);

Определитель матрицы
static double det(double a1, double a2, double a3, double a4, double a5, double a6, double a7, double a8, double a9) { return ( a1 * a5 * a9 - a3 * a5 * a7 + a2 * a6 * a7 + a3 * a4 * a8 - a1 * a6 * a8 - a9 * a2 * a4 ); }

Чтобы проверить, столкнулась ли пуля с каким-либо объектом, нужно проверить пересечение плоскостей пули с плоскостями объекта. Объект в общем случае это многогранник.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод стрельбы хромающий Наталья20 Помощь студентам 0 26.02.2013 23:12
Звук стрельбы Abuhamed JavaScript, Ajax 1 02.03.2012 23:00
Вопрос: Параллельные алгоритмы. Реализация стрельбы. MooNDeaR Gamedev - cоздание игр: Unity, OpenGL, DirectX 23 06.08.2011 16:04
Численные методы. Метод Стрельбы (Делфи) s1z0n Помощь студентам 1 23.04.2010 15:37
Задача на оценку эффективности стрельбы Борзов Помощь студентам 3 23.05.2007 06:54