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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2016, 15:40   #1
obivan
Новичок
Джуниор
 
Регистрация: 19.08.2016
Сообщений: 2
По умолчанию танки 2d /с++/opengl

Решил я сделать танки
Возникли проблемы:
Выстрел из дула танка снарядом(чтобы снаряд вылетал из середины дула по нажатию на клавишу 'r')
Как сделать так чтобы танки не проходили друг через друга и не могли пройти через блок/преграду
Как написать функцию для движения танка?
Ну и "полет" снаряда
Если можно пример кода/функции
obivan вне форума Ответить с цитированием
Старый 19.08.2016, 16:12   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Для каждого танка/снаряда хранить скорость и/или ускорение по осям Х и У.
Скорость = Скорость + Ускорение * Время.
Скорость * Время == Пройденное расстояние.
Текущая позиция = Старая позиция + Пройденное расстояние

Последний раз редактировалось waleri; 19.08.2016 в 16:17.
waleri вне форума Ответить с цитированием
Старый 19.08.2016, 16:20   #3
obivan
Новичок
Джуниор
 
Регистрация: 19.08.2016
Сообщений: 2
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Для каждого танка/снаряда хранить скорость и/или ускорение по осям Х и У.
Скорость = Скорость + Ускорение * Время.
Скорость * Время == Пройденное расстояние.
Текущая позиция = Старая позиция + Пройденное расстояние
с этим я разобрался)
Как плотность объекту задать?
есть преграда танк через нее проходить не должен,как реализовать?

За формулу спасибо :D
obivan вне форума Ответить с цитированием
Старый 19.08.2016, 17:11   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Самый простой способ - у каждого объекта есть описанный прямоугольник. Коллизию объектов проверяем пересечением прямоугольников.
Вариант посложнее - у каждого объекта таких прямоугольников несколько, например корпус танка один, башня второй.

Насчет плотности не совсем понял зачем она - просто держите список объектов через которы нельзя проходить и проверяйте только эти объекты.
waleri вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Танки на C# Brabus Фриланс 3 19.04.2011 15:04
Пишу танки, наткнулся на несколько неприятностей! TLabel Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 22.03.2011 22:18
Танки [Паскаль] zumm Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 25.06.2010 15:58
Танки на Delphi N!ckeL Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 11.08.2008 10:32