Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как делать прицел в 3D играх не


Кен ©   (2003-05-21 04:47:00) 

и оружие в разных точках, то получается, что мы целимся по одной линии, а стреляем по другой. Вопрос, где же должен быть прицел в таком случае, чтобы обеспечить точность прицеливания ? Либо как должна лететь пуля, чтобы попасть туда, куда целимся ?


NailMan   (2003-05-26 14:16:00) [1]

To -> Кен ©
Так камера то находится над игроком. И если сквозь это перекрестие мы будем видеть врага, то если бы мы смотрели из дула пистолета, то мы бы видели небо. И стреляли над его головой.
Нет. Мы видим на игрока сверху, но линия взгляда камеры никоим боком не является линией стрельбы. Вектор-отрезок жестко прикручен к игроку и является линией стрельбы, а дальний конец его проецируется на экран, который отмечается а нем неким маркером. Таким образом будет видимость 2Д-прицела в 3Д. Соответственно если ты будешь делать orbit вокруг игрока, то все равно он будет стрелять по этому вектору. В Хитмана поиграй - поймешь.

Кстати, наверно поэтому в Томб-рэйдере прицеливание автоматическое.
Aim дело неблагодарное. Фактически линия прицеливания попадает на предмет и игроку остается нажать спуск. А если отрезок будет конечен, то игроку нужно именно целиться. К тому же можно прикрутить параболичность траектории, что есть физический факт.

Да. И ещё. Как лучше сделать снайперский прицел ? Надо ведь большую часть экрана прикрыть чем-то и оставить только маленькое отверстие со снайперской разметкой прицела.
А кякже. Именно так и делается - покрываешь непрозрачным спрайтом и рисуешь(лучше именно так) 3Д-линии перекрестия в спроецированных на плоскости камеры координатах. Таким образом от разрешения толщина перекрестия не зависит.

Как в GLScene вставить прозрачную картинку, чтобы через её части можно было смотреть ?
Х.З. Я по директу больше.

И где эту самую картинку взять ? В смысле с прицелом.
Ответ очевиден - либо сам сделай, либо стыбзи у кого-нить.


Кен   (2003-05-23 01:12:00) [2]

Arch-vile ©
> Надо прицел делать как в Max Payne: Там этот вектор заканчивается
> на ближашем объекте, а не в 2-3 метрах от героя. То есть
> прицел рисуется не возле игрока, а на стенке, враге, трубе,
> столике, etc.

То есть делать BuildOctree для каждой! FreeForm в игре.
Это не игра, а один большой тормоз будет.


Arch-vile   (2003-05-22 22:26:00) [3]

Надо прицел делать как в Max Payne: Там этот вектор заканчивается на ближашем объекте, а не в 2-3 метрах от героя. То есть прицел рисуется не возле игрока, а на стенке, враге, трубе, столике, etc.


Кен   (2003-05-22 07:04:00) [4]

Да. И ещё. Как лучше сделать снайперский прицел ? Надо ведь большую часть экрана прикрыть чем-то и оставить только маленькое отверстие со снайперской разметкой прицела.
Как в GLScene вставить прозрачную картинку, чтобы через её части можно было смотреть ? И где эту самую картинку взять ? В смысле с прицелом.


Кен   (2003-05-22 03:12:00) [5]


> Создай мнимый(не рендерящийся) вектор-отрезок, который основанием
> "закреплен" на игроке в том районе где у него оружие, а
> второй конец поворачивается вместе с игроком так чтобы вектор-отрезок
> был всегда по линии взгдяда игрока. Пули будут улетать от
> игрока не по линии взляда камеры, а по этому вектору-отрезку.

Так камера то находится над игроком. И если сквозь это перекрестие мы будем видеть врага, то если бы мы смотрели из дула пистолета, то мы бы видели небо. И стреляли над его головой.

Кстати, наверно поэтому в Томб-рэйдере прицеливание автоматическое.

Может быть сделать не перекрестие прицела, а нечто вроде кружочка ? Типа пули попадают примерно в эту область. Сами же пули пускать случайный образом чуть ниже чем линия выстрела. Заодно автоматически добавится кучность стрельбы.


NailMan   (2003-05-21 09:55:00) [6]

Создай мнимый(не рендерящийся) вектор-отрезок, который основанием "закреплен" на игроке в том районе где у него оружие, а второй конец поворачивается вместе с игроком так чтобы вектор-отрезок был всегда по линии взгдяда игрока. Пули будут улетать от игрока не по линии взляда камеры, а по этому вектору-отрезку.
Расстояние от игрока до второго конца делай 3-4 игровых метра, проецируй его на плоскость экрана и рисуй там экранный спрайтик-перкрестие.

Такой подход позволит тебе по разному выставлять начальну точку полета пуль(с правой руки, левой, с обеих), и таким образом менять характер стрельбы.


Наверх

Титульная страница Поиск, карта сайта Написать письмо