Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.97/30: Рейтинг темы: голосов - 30, средняя оценка - 4.97
1 / 1 / 0
Регистрация: 28.11.2013
Сообщений: 16
1

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

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

Здравствуйте форумчане, сегодня на практике в универе дали задание, написать программу на С++, в которой должно быть поле, на котором ездят танки трех типов: легкие, средние и тяжелые. Все танки должны стрелять, каждый с разным интервалом времени. При попадании или столкновении, тяжелый танк должен убивать среднего, средний легкого. Если столкновение тяжелого и тяжелого, то ничего не должно происходить, и так же со средними и легкими. Это ещё не всё, у каждый танк должен быть индивидуальным, то есть каждый должен иметь отличимый от остальных танков процент брони, скорость, точность попадания, подвижность, размеры. До этого нам не давали заданий такой сложности, с графикой вообще дела не имели, подскажите хоть откуда начать учить, или помогите в написании. Спасибо за внимание.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2015, 10:52
Ответы с готовыми решениями:

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

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

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

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

23
Котовчанин
940 / 480 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
02.02.2015, 11:37 2
Abmin, openGL.
0
2546 / 1205 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
02.02.2015, 11:38 3
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
4772 / 2233 / 283
Регистрация: 01.03.2013
Сообщений: 5,874
Записей в блоге: 25
02.02.2015, 11:51 4
Столько нового узнаешь порой... Мне говорили что опЕнгл наоборот кросплатформенный. И движение и прочие не зависящие от пользователя события я бы по таймеру делал, а оказывается все делают забитием пустых циклов. Да и на ООП с классами я бы забил, а тут настоятельно рекомендуют... Да и написал бы часа за полтора а не за 3 дня.
0
Dark Byte
02.02.2015, 11:53
  #5

Не по теме:

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

0
Котовчанин
940 / 480 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
02.02.2015, 11:56 6
_Ivana, и правда интересно, что же там получится за полтора часа. Я такую игруху писала(очень подобную), у меня на это ушла неделя. И рисовать училась, и с графикой работать в консоли, и всё такое. Но я тогда была полным нубом. Научите, уж, "штопать" такие игрухи.
1
4772 / 2233 / 283
Регистрация: 01.03.2013
Сообщений: 5,874
Записей в блоге: 25
02.02.2015, 12:03 7
Dark Byte, плати деньги и увидишь результат. Как оплатишь, начнешь и время отсчитывать. Но советы свои даже тогда держи при себе.
 Комментарий модератора 
Ваши слова к вам тоже относятся. _Ivana, Dark Byte, даже не пытайтесь начать оффтопить

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

Не по теме:

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

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

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

Не по теме:

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

0
4772 / 2233 / 283
Регистрация: 01.03.2013
Сообщений: 5,874
Записей в блоге: 25
02.02.2015, 22:02 11
Raali, ну так можно и до искусственного или группового интеллекта дойти, управляющего движением группы объектов. В стартовом посте вообще ничего не сказано о том как танчики выглядят, по каким законам движутся и стреляют. Поэтому будем проще - танчики будут круги (прямоугольники ориентированные по экрану менее красиво будет) с радиусом-пушкой, стрелять будет в том же направлении куда едет, ехать будет при рождении в случайно заданных приращениях по x y , от бортов и других танков будет отражаться по законам геометрической оптики - все. А это более чем реально наваять за полтора часа.
0
1 / 1 / 0
Регистрация: 28.11.2013
Сообщений: 16
06.02.2015, 15:35  [ТС] 12
Так кто то может мне помочь с заданием?
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
06.02.2015, 16:26 13
Если в универе дали задание, должны были дать и знания для выполнения этого задания. Если знаний не дали, то рекомендую трясти деканат или основательно поговорить с преподавателем (не 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 14
не знаю, может извращение, но, а что если тебе бы не в консоле её не написать?
консольные танчики.
Не, ну а чё?
я когда-то таким бредом занимался...
0
1 / 1 / 0
Регистрация: 28.11.2013
Сообщений: 16
06.02.2015, 21:00  [ТС] 15
Так нам сказали в графичном виде. Нас только учили матрицы делать, массивы, классы.. с графикой вообще дела не имели, я даже представить не могу как это все сделать.. кто то из вас смог бы сделать хоть поле с одним танком, который рандомно передвигается и стреляет? В интернете нашел что то похожее на это, но без исходников. Вот оно.
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
07.02.2015, 04:00 16
Цитата Сообщение от Abmin Посмотреть сообщение
нам сказали в графичном виде
Цитата Сообщение от Abmin Посмотреть сообщение
с графикой вообще дела не имели
А остальные могут решить эту задачу? Если нет, идёте всей толпой к преподу. Если не помогло - в деканат. Кстати, какие сроки выполнения задания?
0
2733 / 1892 / 564
Регистрация: 05.06.2014
Сообщений: 5,526
07.02.2015, 04:44 17
Цитата Сообщение от Abmin Посмотреть сообщение
Это ещё не всё, у каждый танк должен быть индивидуальным, то есть каждый должен иметь отличимый от остальных танков процент брони, скорость, точность попадания, подвижность, размеры.
Первый вопрос: что такое "точность"? В X-COM, например, была "точность" типа "стреляли в Петю, попали в Васю". И такое колдунство требует просчитывать траекторию снаряда. А в чем попроще "точность" сводится к "попал, не попал" и нужно только кинуть кубик (выпала шестерка - попал, не выпала - не попал).

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

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

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

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

ЗЗЫ в отличие от рекомендующих "пойти в деканат" я склоняюсь к неадекватности ТС, нежели преподавателя.
0
15 / 14 / 2
Регистрация: 02.09.2008
Сообщений: 168
07.02.2015, 18:10 20
а самому сделать редактор карты на С и танчики с помощью символов асхи
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2015, 18:10

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru