|
1 / 1 / 0
Регистрация: 28.11.2013
Сообщений: 16
|
|
Графическое задание на С++: танчики02.02.2015, 10:52. Показов 8131. Ответов 23
Метки нет (Все метки)
Здравствуйте форумчане, сегодня на практике в универе дали задание, написать программу на С++, в которой должно быть поле, на котором ездят танки трех типов: легкие, средние и тяжелые. Все танки должны стрелять, каждый с разным интервалом времени. При попадании или столкновении, тяжелый танк должен убивать среднего, средний легкого. Если столкновение тяжелого и тяжелого, то ничего не должно происходить, и так же со средними и легкими. Это ещё не всё, у каждый танк должен быть индивидуальным, то есть каждый должен иметь отличимый от остальных танков процент брони, скорость, точность попадания, подвижность, размеры. До этого нам не давали заданий такой сложности, с графикой вообще дела не имели, подскажите хоть откуда начать учить, или помогите в написании. Спасибо за внимание.
0
|
|
| 02.02.2015, 10:52 | |
|
Ответы с готовыми решениями:
23
Графическое задание. Графическое задание РГЗ(расчетно-графическое задание) |
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 02.02.2015, 11:38 | |
|
1) В С++ нету стандартного модуля графики.
2) В винде можно использовать opengl https://www.cyberforum.ru/opengl/ или winapi https://www.cyberforum.ru/win-api/ 3) для быстрого и кроссплатформеного решения я бы выбрал SFML http://www.sfml-dev.org/ . При IQ выше среднего - написать первый прототип игр танчиик можно уже в течении 3 дней. 4) с того что стоит знать: а) игра это вечный цикл б) для относительно одинаковой скорости анимации и движения персонажей на компьютерах разной мощности осуществляют привязку ко времени: делают по разному, к примеру, делают засечку каждой первой строкой при входе в вечный цикл (итерацию) итого получается время выполнение 1 прохода например 800. На слабее компе это будет 1200. На еще слабее 1600 и т.д. Получается если домножать float переменную на смещение + это число быстрее компы выполнять за 1 секунду 8 итерации и добавят 100500 и старые компы выполнять 3 операции и добавят 100500. Всё условно объясняю - но станет понятно как делаются примитивы игр. в) пишите на ООП абсолютно всё, так как расширяемость при нём самая высокая. Не гавнокодьте всё в одном "универсальном классе". Удачи вам.
1
|
|
| 02.02.2015, 11:51 | |
|
Столько нового узнаешь порой... Мне говорили что опЕнгл наоборот кросплатформенный. И движение и прочие не зависящие от пользователя события я бы по таймеру делал, а оказывается все делают забитием пустых циклов. Да и на ООП с классами я бы забил, а тут настоятельно рекомендуют... Да и написал бы часа за полтора а не за 3 дня.
0
|
|
| 02.02.2015, 11:53 | |
|
0
|
|
|
Котовчанин
|
|
| 02.02.2015, 11:56 | |
|
_Ivana, и правда интересно, что же там получится за полтора часа. Я такую игруху писала(очень подобную), у меня на это ушла неделя. И рисовать училась, и с графикой работать в консоли, и всё такое. Но я тогда была полным нубом. Научите, уж, "штопать" такие игрухи.
1
|
|
| 02.02.2015, 12:03 | |||||||
|
Dark Byte, плати деньги и увидишь результат. Как оплатишь, начнешь и время отсчитывать. Но советы свои даже тогда держи при себе.
Добавлено через 3 минуты Тамика, про консоль никто не говорит. Виндовое приложение, визардом по шаблону, таймеры + винапи + чистый Си + драг-н-дроп с моего тетриса и прочих подобных проектов - и за полтора часа все работает. Да, танчики при этом - прямоугольники разного размера а не красивые текстурные 3Д объекты опЕнгловые - но я полагаю этого ТС и не требуется.
0
|
|||||||
| 02.02.2015, 12:04 | |
|
Не по теме: я бы тоже глянул на этот шедевр за полтора часа, где нету ниодного "пустого цикла" (наверно ишлось про итерацию, но автору веднее). Да и где-то увидело, что я писал что opengl не кроссплатформеный.... . Да думаю ТС'y для первой графической игры надо его использовать (рука_лицо). Люблю глупых людей) Они такие милые)))
0
|
|
| 02.02.2015, 12:13 | |
|
Тамика, вот это Программа круги на воде может получиться за полчаса - примерно столько это у меня и отняло. А если это уже есть (как у меня), то драг-н-дропнуть оттуда все рандомы\таймеры и т.п. и влепить за 10 минут управление клавишами, то и будут сабжевые танчики.
rikimaru2013, люди в 7 классе отличают тангенс от арктангенса, если они не глупые. И не пишут глупости в других темах потом.
0
|
|
| 02.02.2015, 17:37 | |
|
0
|
|
| 02.02.2015, 22:02 | |
|
Raali, ну так можно и до искусственного или группового интеллекта дойти, управляющего движением группы объектов. В стартовом посте вообще ничего не сказано о том как танчики выглядят, по каким законам движутся и стреляют. Поэтому будем проще - танчики будут круги (прямоугольники ориентированные по экрану менее красиво будет) с радиусом-пушкой, стрелять будет в том же направлении куда едет, ехать будет при рождении в случайно заданных приращениях по x y , от бортов и других танков будет отражаться по законам геометрической оптики - все. А это более чем реально наваять за полтора часа.
0
|
|
|
1 / 1 / 0
Регистрация: 28.11.2013
Сообщений: 16
|
|
| 06.02.2015, 15:35 [ТС] | |
|
Так кто то может мне помочь с заданием?
0
|
|
| 06.02.2015, 16:26 | |
|
Если в универе дали задание, должны были дать и знания для выполнения этого задания. Если знаний не дали, то рекомендую трясти деканат или основательно поговорить с преподавателем (не 1 на 1). Самое простое что могу посоветовать - GDI. Гугли "двойная буферизация" и начинай писать классы снарядов и танков. Если копировать рабочие куски кода и заменять где надо чужие объекты на свои, то сделаешь гораздо быстрее нежели учить OpenGL или GDI.
Если подобных заданий не давали, то попробуй в консоли сделать (как китайский тетрис). Поле будет массивом CHAR_INFO, вывод этого массива с помощью WriteConsoleOutput(). Заполнять этот массив будешь своими танками и снарядами. Рекомендую открыть сразу утилитку charmap, для выбора понравившихся символов на роль танка и снаряда (или настроить шрифт квадратиками). Здоровье, кстати, можно будет обозначать интенсивностью, а класс танка цветом. Снаряд вертикальный - вертикальная граница, горизонтальный - горизонтальная. Запускаешь цикл в котором вычисляешь кто где будет на следующем кадре, забиваешь это дело в массив CHAR_INFO и выводишь.
0
|
|
| 06.02.2015, 16:51 | |
|
не знаю, может извращение, но, а что если тебе бы не в консоле её не написать?
консольные танчики. Не, ну а чё? я когда-то таким бредом занимался...
0
|
|
|
1 / 1 / 0
Регистрация: 28.11.2013
Сообщений: 16
|
|
| 06.02.2015, 21:00 [ТС] | |
|
Так нам сказали в графичном виде. Нас только учили матрицы делать, массивы, классы.. с графикой вообще дела не имели, я даже представить не могу как это все сделать.. кто то из вас смог бы сделать хоть поле с одним танком, который рандомно передвигается и стреляет? В интернете нашел что то похожее на это, но без исходников. Вот оно.
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 07.02.2015, 04:44 | ||
|
Второй вопрос: а кто собственно всем участникам этой темы сказал что задание на реалтайм? Делать пошаговый бой по типу все того же X-COM (и да, там были танчики). С полем в клеточку. Геморрою будет куда меньше.
0
|
||
| 07.02.2015, 09:03 | |
|
Самый простой вариант - сделать на спрайтах в 2D графике. Спрайт - это прямоугольник, на который выводится картинка. Вы передвигаете прямоугольник по экрану (это движение танка), а на нём меняются картинки. Например, вы нажали вниз, картинка заменилась на движение вниз. Ещё картинки меняются по таймеру, когда танк движется. Это чтобы была видимость движения. То есть картинки отличаются по сдвигу гусениц. Такие спрайты находятся на спрайт листе. Вы открываете программно картинку и формируете массивы, а в программе уже рисуете соответствующий массив какой нужен (поочереди выводите картинки из нужного массива на прямоугольник, который представляет танк). Вот что выдал поисковик на запрос tank sprite sheet
Я начал писать танчики на спрайтах на C++ Qt OpenGL --> скачать приложение для Win7 с исходниками Если вдруг приложение не запустится на вашем компьютере, то сообщите мне. Я рисую с использованием шейдеров. Чтобы понять как это делается, нужно научиться рисовать квадрат и накладывать на него текстуру. Я записываю видео, чтобы не нужно было объяснять, а просто показывать, как я это делаю --> рисуем квадрат Я может быть запишу видео, как делать спрайтовую анимацию с нуля Ещё я начал недавно писать игру "Танки" в 3D: скачать приложение для Win7 с исходниками Здесь всё гораздо сложнее. Модель танка я нарисовал в Blender. Это пока грубая модель. Я её нарисовал по этому видео. Blender сохраняет модель в файл. Модель я загружаю в программу с помощью библиотеки Assimp Когда-нибудь начну записывать видео, как поставить Assimp, рисовать модель и т.д. Мне нужно до этого созреть. Хотя вы сами можете установить Assimp, нарисовать по видео, как машинку, экспортировать из Blender'а в *.obj файл, посмотреть, как я загружаю и рисую по исходниками выше. Но я совсем неправильно покрасил модель. Я создал в Blender'е для каждого звена гусениц отдельный материал. Код там очень и очень сырой. Я может только через неделю начну его улучшать и добавлять танки, стрельбу и т.д.
1
|
|
| 07.02.2015, 11:10 | |
|
Правильно. И реализовать клиент-серверный вариант с мультиплеером и вэб интерфейсом
![]() ЗЫ к слову, как в невнятном стартовом, так и в таких же дальнейших постах ТС нет ни слова об управлении персонажами - все ездит и стреляет само. ЗЗЫ в отличие от рекомендующих "пойти в деканат" я склоняюсь к неадекватности ТС, нежели преподавателя.
0
|
|
|
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
|
|
| 07.02.2015, 18:10 | |
|
а самому сделать редактор карты на С и танчики с помощью символов асхи
0
|
|
| 07.02.2015, 18:10 | |
|
Помогаю со студенческими работами здесь
20
Сделать РГЗ (расчетно-графическое задание) Из turbo в ABC. немного подправить. Графическое задание Вывести полуокружности, повторяя по два раза с каждой стороны до конца цикла (графическое задание)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|