С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/41: Рейтинг темы: голосов - 41, средняя оценка - 4.85
 Аватар для Abmin
1 / 1 / 0
Регистрация: 28.11.2013
Сообщений: 16

Графическое задание на С++: танчики

02.02.2015, 10:52. Показов 8131. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчане, сегодня на практике в универе дали задание, написать программу на С++, в которой должно быть поле, на котором ездят танки трех типов: легкие, средние и тяжелые. Все танки должны стрелять, каждый с разным интервалом времени. При попадании или столкновении, тяжелый танк должен убивать среднего, средний легкого. Если столкновение тяжелого и тяжелого, то ничего не должно происходить, и так же со средними и легкими. Это ещё не всё, у каждый танк должен быть индивидуальным, то есть каждый должен иметь отличимый от остальных танков процент брони, скорость, точность попадания, подвижность, размеры. До этого нам не давали заданий такой сложности, с графикой вообще дела не имели, подскажите хоть откуда начать учить, или помогите в написании. Спасибо за внимание.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.02.2015, 10:52
Ответы с готовыми решениями:

Графическое задание.
В общем по заданию строится многоугольник, который потом построчно заливается. В программе возникли некоторые проблемы. В частности,...

Графическое задание
Нужно срочно нарисовать едущую машину по дороге.Кто сможет помоч?

РГЗ(расчетно-графическое задание)
Народ помогите выполнить задание вот: Исходные данные: 1. Нечетная квадратная матрица (м*м) 2.Начальные значения элементов матрицы -...

23
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 35
02.02.2015, 11:37
Abmin, openGL.
0
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
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,989
Записей в блоге: 32
02.02.2015, 11:51
Столько нового узнаешь порой... Мне говорили что опЕнгл наоборот кросплатформенный. И движение и прочие не зависящие от пользователя события я бы по таймеру делал, а оказывается все делают забитием пустых циклов. Да и на ООП с классами я бы забил, а тут настоятельно рекомендуют... Да и написал бы часа за полтора а не за 3 дня.
0
02.02.2015, 11:53

Не по теме:

Цитата Сообщение от _Ivana Посмотреть сообщение
Да и написал бы часа за полтора а не за 3 дня.
слово не воробей... у тебя осталось 1 час 28 минут советую приступать побыстрее :D

0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 35
02.02.2015, 11:56
_Ivana, и правда интересно, что же там получится за полтора часа. Я такую игруху писала(очень подобную), у меня на это ушла неделя. И рисовать училась, и с графикой работать в консоли, и всё такое. Но я тогда была полным нубом. Научите, уж, "штопать" такие игрухи.
1
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,989
Записей в блоге: 32
02.02.2015, 12:03
Dark Byte, плати деньги и увидишь результат. Как оплатишь, начнешь и время отсчитывать. Но советы свои даже тогда держи при себе.
 Комментарий модератора 
Ваши слова к вам тоже относятся. _Ivana, Dark Byte, даже не пытайтесь начать оффтопить

Добавлено через 3 минуты
Тамика, про консоль никто не говорит. Виндовое приложение, визардом по шаблону, таймеры + винапи + чистый Си + драг-н-дроп с моего тетриса и прочих подобных проектов - и за полтора часа все работает. Да, танчики при этом - прямоугольники разного размера а не красивые текстурные 3Д объекты опЕнгловые - но я полагаю этого ТС и не требуется.
0
02.02.2015, 12:04

Не по теме:

я бы тоже глянул на этот шедевр за полтора часа, где нету ниодного "пустого цикла" (наверно ишлось про итерацию, но автору веднее). Да и где-то увидело, что я писал что opengl не кроссплатформеный.... . Да думаю ТС'y для первой графической игры надо его использовать (рука_лицо). Люблю глупых людей) Они такие милые)))

0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,989
Записей в блоге: 32
02.02.2015, 12:13
Тамика, вот это Программа круги на воде может получиться за полчаса - примерно столько это у меня и отняло. А если это уже есть (как у меня), то драг-н-дропнуть оттуда все рандомы\таймеры и т.п. и влепить за 10 минут управление клавишами, то и будут сабжевые танчики.

rikimaru2013, люди в 7 классе отличают тангенс от арктангенса, если они не глупые. И не пишут глупости в других темах потом.
0
02.02.2015, 17:37

Не по теме:

Цитата Сообщение от _Ivana Посмотреть сообщение
драг-н-дроп с моего тетриса и прочих подобных проектов
Танчики все же не тетрис, на одну только механику может уйти несколько дней

0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,989
Записей в блоге: 32
02.02.2015, 22:02
Raali, ну так можно и до искусственного или группового интеллекта дойти, управляющего движением группы объектов. В стартовом посте вообще ничего не сказано о том как танчики выглядят, по каким законам движутся и стреляют. Поэтому будем проще - танчики будут круги (прямоугольники ориентированные по экрану менее красиво будет) с радиусом-пушкой, стрелять будет в том же направлении куда едет, ехать будет при рождении в случайно заданных приращениях по x y , от бортов и других танков будет отражаться по законам геометрической оптики - все. А это более чем реально наваять за полтора часа.
0
 Аватар для Abmin
1 / 1 / 0
Регистрация: 28.11.2013
Сообщений: 16
06.02.2015, 15:35  [ТС]
Так кто то может мне помочь с заданием?
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
06.02.2015, 16:26
Если в универе дали задание, должны были дать и знания для выполнения этого задания. Если знаний не дали, то рекомендую трясти деканат или основательно поговорить с преподавателем (не 1 на 1). Самое простое что могу посоветовать - GDI. Гугли "двойная буферизация" и начинай писать классы снарядов и танков. Если копировать рабочие куски кода и заменять где надо чужие объекты на свои, то сделаешь гораздо быстрее нежели учить OpenGL или GDI.
Если подобных заданий не давали, то попробуй в консоли сделать (как китайский тетрис). Поле будет массивом CHAR_INFO, вывод этого массива с помощью WriteConsoleOutput(). Заполнять этот массив будешь своими танками и снарядами. Рекомендую открыть сразу утилитку charmap, для выбора понравившихся символов на роль танка и снаряда (или настроить шрифт квадратиками). Здоровье, кстати, можно будет обозначать интенсивностью, а класс танка цветом. Снаряд вертикальный - вертикальная граница, горизонтальный - горизонтальная. Запускаешь цикл в котором вычисляешь кто где будет на следующем кадре, забиваешь это дело в массив CHAR_INFO и выводишь.
0
15 / 15 / 1
Регистрация: 17.10.2012
Сообщений: 98
Записей в блоге: 1
06.02.2015, 16:51
не знаю, может извращение, но, а что если тебе бы не в консоле её не написать?
консольные танчики.
Не, ну а чё?
я когда-то таким бредом занимался...
0
 Аватар для Abmin
1 / 1 / 0
Регистрация: 28.11.2013
Сообщений: 16
06.02.2015, 21:00  [ТС]
Так нам сказали в графичном виде. Нас только учили матрицы делать, массивы, классы.. с графикой вообще дела не имели, я даже представить не могу как это все сделать.. кто то из вас смог бы сделать хоть поле с одним танком, который рандомно передвигается и стреляет? В интернете нашел что то похожее на это, но без исходников. Вот оно.
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
07.02.2015, 04:00
Цитата Сообщение от Abmin Посмотреть сообщение
нам сказали в графичном виде
Цитата Сообщение от Abmin Посмотреть сообщение
с графикой вообще дела не имели
А остальные могут решить эту задачу? Если нет, идёте всей толпой к преподу. Если не помогло - в деканат. Кстати, какие сроки выполнения задания?
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
07.02.2015, 04:44
Цитата Сообщение от Abmin Посмотреть сообщение
Это ещё не всё, у каждый танк должен быть индивидуальным, то есть каждый должен иметь отличимый от остальных танков процент брони, скорость, точность попадания, подвижность, размеры.
Первый вопрос: что такое "точность"? В X-COM, например, была "точность" типа "стреляли в Петю, попали в Васю". И такое колдунство требует просчитывать траекторию снаряда. А в чем попроще "точность" сводится к "попал, не попал" и нужно только кинуть кубик (выпала шестерка - попал, не выпала - не попал).

Второй вопрос: а кто собственно всем участникам этой темы сказал что задание на реалтайм? Делать пошаговый бой по типу все того же X-COM (и да, там были танчики). С полем в клеточку. Геморрою будет куда меньше.
0
9037 / 2937 / 494
Регистрация: 05.10.2013
Сообщений: 7,962
Записей в блоге: 216
07.02.2015, 09:03
Самый простой вариант - сделать на спрайтах в 2D графике. Спрайт - это прямоугольник, на который выводится картинка. Вы передвигаете прямоугольник по экрану (это движение танка), а на нём меняются картинки. Например, вы нажали вниз, картинка заменилась на движение вниз. Ещё картинки меняются по таймеру, когда танк движется. Это чтобы была видимость движения. То есть картинки отличаются по сдвигу гусениц. Такие спрайты находятся на спрайт листе. Вы открываете программно картинку и формируете массивы, а в программе уже рисуете соответствующий массив какой нужен (поочереди выводите картинки из нужного массива на прямоугольник, который представляет танк). Вот что выдал поисковик на запрос tank sprite sheet

Я начал писать танчики на спрайтах на C++ Qt OpenGL --> скачать приложение для Win7 с исходниками Если вдруг приложение не запустится на вашем компьютере, то сообщите мне. Я рисую с использованием шейдеров. Чтобы понять как это делается, нужно научиться рисовать квадрат и накладывать на него текстуру. Я записываю видео, чтобы не нужно было объяснять, а просто показывать, как я это делаю --> рисуем квадрат Я может быть запишу видео, как делать спрайтовую анимацию с нуля

Ещё я начал недавно писать игру "Танки" в 3D: скачать приложение для Win7 с исходниками Здесь всё гораздо сложнее. Модель танка я нарисовал в Blender. Это пока грубая модель. Я её нарисовал по этому видео. Blender сохраняет модель в файл. Модель я загружаю в программу с помощью библиотеки Assimp Когда-нибудь начну записывать видео, как поставить Assimp, рисовать модель и т.д. Мне нужно до этого созреть. Хотя вы сами можете установить Assimp, нарисовать по видео, как машинку, экспортировать из Blender'а в *.obj файл, посмотреть, как я загружаю и рисую по исходниками выше. Но я совсем неправильно покрасил модель. Я создал в Blender'е для каждого звена гусениц отдельный материал. Код там очень и очень сырой. Я может только через неделю начну его улучшать и добавлять танки, стрельбу и т.д.
1
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,989
Записей в блоге: 32
07.02.2015, 11:10
Правильно. И реализовать клиент-серверный вариант с мультиплеером и вэб интерфейсом

ЗЫ к слову, как в невнятном стартовом, так и в таких же дальнейших постах ТС нет ни слова об управлении персонажами - все ездит и стреляет само.

ЗЗЫ в отличие от рекомендующих "пойти в деканат" я склоняюсь к неадекватности ТС, нежели преподавателя.
0
 Аватар для Casper!
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
07.02.2015, 18:10
а самому сделать редактор карты на С и танчики с помощью символов асхи
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2015, 18:10
Помогаю со студенческими работами здесь

Сделать РГЗ (расчетно-графическое задание)
НУжно сделать РГЗ программы + отчет

Из turbo в ABC. немного подправить. Графическое задание
uses crt,graph; const n=31; {массив - константа, можно ввести с клавиатуры} a:array of...

Вывести полуокружности, повторяя по два раза с каждой стороны до конца цикла (графическое задание)
Доброй ночи, ребят следующий код выводит полуокружности на левой стороне, в задании нужно чтобы они полуокружности чередовались по два...

Танчики
Помогите, пожалуйста. В данном языке не силен, так что некоторых тонкостей не знаю, поэтому не нужно ругаться на мои ошибки, если они...

Танчики C++
Здравствуйте! Пишу курсовую. Сроки уже горят. Нужно завтра сдать, а я так и не успел ничего. :cry:Поделитесь, пожалуйста, исходным кодом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 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? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru