Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование игр, графики и искусственного интеллекта > Алгоритм выстрела.


Автор: CppDevelopeR 13.6.2008, 18:45
Здравсвуйте уважаемые девелоперы. Я пишу с другом игру на С++. Так вот, дему игры вы можете скачать на www.eg-studio.nuu.ru
Это не само-реклама. Просто понять суть проблемы можно скачав и посмотрев демку. Так вот, если вы посмарели демку, видно, что выстрел на ней поршивенький. Не подскажете алгоритм нормального выстрела. Желательно с кодами и тп.

ПС. Игра пишется на движке Irrlicht.

Автор: Ryoga 14.6.2008, 00:18
По-моему вам не к программистам, вам к художникам. Анимация у вас хреновая, как мне кажется.
А, ну и выстрел как-то подозрительно дрыгается при стрефе вправо, влево. smile

Автор: Dronchik 16.6.2008, 06:25
Ryoga, вот код выстрела
Код

// get line of camera
core::vector3df start = camera->getPosition();

core::vector3df end = (camera->getTarget() - start);
end.normalize();
start += end*64.0f;
end = start + (end * camera->getFarValue());

core::triangle3df triangle;
core::line3d<f32> line(start, end);

таким способом у нас идёт получение линии для полёта файрбола. НО. При таком алгоритме у нас паршивенький выстрел. Нам нужно чтоб выстрел шёл с середины экрана всегда. А мы не можем придумать алгоритм такого выстрела.

Добавлено через 1 минуту и 17 секунд
Ryoga, на счёт художников. Эт временно файрболл стоит. Чуть позже будет нормальные пули с трасерами.

Автор: Rickert 16.6.2008, 09:07
Хотел бы знать о команде: сколько лет вам и вашим комрадам?
Скачал демку - архив битый, нету там Play.exe.
Опишите род вашей проблемы подробнее или дайте нормальные ссылки, если хотите разрулить проблему smile

Автор: Ryoga 16.6.2008, 12:09
Dronchik, ну так может его и рисовать каким-нибудь анимированным спрайтом в середине экрана? Т.е. анимация выстрела отдельно, а пули уже сами по себе. Как Вы собственно отрисовку то проводите? Т.е. Вы просчитыли вектор направления полёта пули. И что? Создаёте объект, который по нему летит и его рисуете или как? Т.е. когда я там пытался пострелять у меня не создалось впечатление, что что-то где-то летит, создалось впечатление, что точки светящиеся бегают по экрану.
Rickert, там же написано 13 лет... ;)
Я два дня до того качал какую-то последнюю демку - было всё в норме. Ещё там марио для особо тормознутых нашёл. smile Уж очень он медленный какой-то.

Автор: Dronchik 17.6.2008, 16:34
Ryoga, мы получаем вектор взгляда и по нему пускаем наш фаерболл при выстреле. Но он почему то немного запаздывает. Те кто скачал могут заметить что при движении влево боком фаербол вылетает справа а не с середины экрана, и наоборот когда двигаешься вправо, то фаерболл при стрельбе вылетает слева. Вот в этом и проблема. Как сделать чтоб он вылетал с середины всегда.

Автор: Ryoga 18.6.2008, 12:23
Не знаком с используемым вами движком, поэтому по коду врятли смогу помочь. Однако, может попробовать так, как я предложил в предыдущем посте? Отделить именно анимацию от самого выстрела.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)