С Новым годом! Форум программистов, компьютерный форум, киберфорум
DirectX
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 05.08.2014
Сообщений: 7
1

Что прочитать, чтобы можно было создать 2d игру?

18.10.2014, 23:08. Показов 4315. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Видел книги по программированию на Directx, но в названии книги написано создание 3d игр (хотя возможно в них проходят и 2d, если я ошибаюсь - поправьте). Можно ли где-нибудь обучиться созданию полноценных 2d игр?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.10.2014, 23:08
Ответы с готовыми решениями:

Как создать папку и обеспечить, чтобы можно было запускать эти программы, но нельзя было бы их скопировать, переместить, удалить
Подскажите, как создать папку и обеспечить, чтобы можно было запускать эти программы, но нельзя...

можно ли создать переменную Session из страницы .aspx, чтобы с ней можно было работать в .asp ?
можно ли создать переменную Session из страницы .aspx, чтобы с ней можно было работать в .asp ?

Где можно прочитать: сходимость, равномерная сходимость и расходимость рядов с примерами, чтобы было понятно
Здравствуйте, где можно прочитать сходимость, равномерна сходимость и расходимость рядов с...

можно ли создать такой именованый пейп , что по нему можно было передавать данные по сети?
можно ли создать такой именованый пейп , что по нему можно было передавать данные по сети? как он...

12
80 / 80 / 19
Регистрация: 07.05.2009
Сообщений: 316
20.10.2014, 18:34 2
Привет.

Перестань читать, расслабься и просто сделай игру.
Ещё могу предложить использовать вот этот двиг, но полноценную 2d игру на нём сделать будет очень сложно:
http://www.gamedev.ru/projects/forum/?id=190465

-----
С уважением,
Adler.
0
Заблокирован
21.10.2014, 11:28 3
Давай сначала определимся, на чём ты будешь рисовать и под какую ОС?
1. Под Linux/ Windows / Mac - пут ответ очевиден - Qt (для 3D в нём OpenGL)
2. Windows. Тут есть варианты: GDI, GDI+, DirectX, OpenGL, Qt и ещё несколько не особо популярных библиотек.

Раз ты создал вопрос именно в ветке DirectX, значит цель всё таки - рисовать в DirectX.
Изучать старьё ниже DirectX11 на данный момент нет смысла. В DirectX11 есть Direct2D, в нём можно с пол пинка рисовать 2D графику. Так же можно этим же Direct2D рисовать на текстурах Direct3D, да и много ещё его. В общем начни с него, пока что изучай простое рисование в Direct2D без Direct3D.

Вот у этого перца есть куча статей на русском http://msdn.microsoft.com/ru-r... mi=authors Сам список - на английском, но когда щёлкаешь по статье - уидешь, что они переведена. Ищи DirectX Factor статьи. (Вот пример его статьи http://msdn.microsoft.com/ru-r... 85714.aspx )

Можешь MSDN почитать по Direct2D - http://msdn.microsoft.com/en-u... s.85).aspx

Вот тут описывается простой пример на английском по Direct2D http://msdn.microsoft.com/en-u... s.85).aspx
но скачать исходники почему то нельзя.

Был отличный ресурс с примерами: http://www.rastertek.com/ , но что то с ним случилось и он (точнее его не совсем свежий архив) временно находится здесь: http://web.archive.org/web/201... ertek.com/

Есть даже какие то нелепые видео уроки по Direct2D на английском http://www.youtube.com/watch?v=ng9Ho9qcVII или http://rutracker.org/forum/viewtopic.php?t=4393654, не знаю - не смотрел, но сразу скажу, нормальной информации по Direct2D на русском ты не найдёшь, надо самому изучать.
1
191 / 90 / 33
Регистрация: 04.11.2013
Сообщений: 474
Записей в блоге: 4
26.10.2014, 07:09 4
1. Книгу Кернигана, Ричи "Язык программирования С". Из этой книги должно понять указатели, функции, структуры, запись структур в файл функциями fread, fwrite.
2. Книгу Пецолда "Programming Windows"

Многие употребляют слово "движок". Для создания 2d игр, не нужно делать движок или разбирать готовые движки.Достаточно школьной математики.

Основным элементом 2d игры является графика, которая представляет изображение, состоящее из пикселей. Наложение изображения осуществляют функции BitBlt, StretchBlt, TransparentBlt, а загрузку изображения осуществляет функция LoadImage. Изображение загружается в DC, которое является абстрактным устройством и создается функцией CreateConpatibleDC. Выбор изображения осуществляется функциями GetObject, SelectObject. векторная графика рисуется функциями MoveToEx, LineTo. Пиксель отрисовывается функцией SetPixel.

Игровое поле представляет из себя матрицу, то есть двухмерный массив, которы объявляется двойным void** указателем. Динамическая оперативная память выделяется оператором new, что позволяет использовать всю оперативную память в наличии.

Для того, чтобы начать программировать на DirectX нужно скачать DirectX SDK и скомпилировать примеры (samples, tutorials), которые идут вместе с примерами. Начать лучше с изучения DirectX 8, так как он поддерживается Windows XP без установки дополнительных библиотек, и его будет вполне достаточно для изучения.

Возможно, изучать готовые движки, в сети есть исходники игрыl quake, quake 2, quake 3, doom 3, half life 2, unreal, cryengine.

Я сомневаюсь, что ответы на форуме помогут вам сделать 2d игру. Я сам был в такой же ситуации в 2001 году, когда я начал программировать. я не смог сделать даже тетрис, и у меня не было даже идей, как он делается. Вы находитесь в таком же положении. Как тогда объяснить?

Игру какого типа из имеющихся вы хотите сделать? Сперва нужно попробовать сделать римейк существующей игры. Вы не знаете, с чего начать, это понятно, но, чтобы попытаться объяснить базовые вещи, нужно знать тип игры, которую вы хотите сделать. Эти ответы, что тут пишут, они не помогут
0
5 / 5 / 2
Регистрация: 10.06.2014
Сообщений: 40
30.10.2014, 07:41 5
Рисуете квадраты и накладываете на них картинки, и так вся игра.
Понятно, если делать анимацию, то просто чередуете картинки на одном квадратике.
Далее думаю понятно, тут и так много написали без меня.
0
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 3
02.11.2014, 13:38 6
Всем доброго времени суток.
Есть такой вопрос, может кто сталкивался. учу СИ++ по видеоурокам на ютубе и там была программа тетриса. Ее в точности переписал, но появилась проблема. у автора все нормально работает, у меня тетрамины проходят через дно колодца. получается, только фигура доходит до дна, она исчезает и появляется новая. подскажите, как можно прервать данный цикл(желательно напишите пример)

пример видео

http://video.yandex.ru/users/tanot/view/8/

если нужен код

https://code.google.com/p/spee... akechanges

буду очень признателен, если хотя бы скажите где конкретно нужно изменить код или дописать. напишите хотя бы пример цикла, как можно закрепить дно, чтобы фигуры не проскакивали?
0
191 / 90 / 33
Регистрация: 04.11.2013
Сообщений: 474
Записей в блоге: 4
04.11.2014, 10:30 7
если нужен код

https://code.google.com/p/spee... akechanges

буду очень признателен, если хотя бы скажите где конкретно нужно изменить код или дописать. напишите хотя бы пример цикла, как можно закрепить дно, чтобы фигуры не проскакивали?
Компьютерная игра это точная математическая модель, в которой нет фигур и дна.

Компилирую следующей строкой : cl game.cpp painter.cpp tetris.cpp tetromino.cpp well.cpp
До компоновки не доходит. tetris из проекта при компиляции сразу вываливается на ошибке в gl.h
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\GL/gl.h(1152) :error C:2144: syntax error: 'void' should be preceded by ';'

Вставляю в файл painter.cpp перед #include <gl/gl.h> строку #include <windows.h>
Через дно не проходит.
1
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 3
04.11.2014, 15:23 8
да, но как быть если у меня не линукс а виндовс. библиотека stdafx все подключает где надо. добавил библиотеку windows.h но изменений не произошло, фигуры так и продолжают появляться и исчезать. проверяю просто зажатым курсором вниз
0
191 / 90 / 33
Регистрация: 04.11.2013
Сообщений: 474
Записей в блоге: 4
04.11.2014, 16:25 9
да, но как быть если у меня не линукс а виндовс.
У меня тоже windows
библиотека stdafx все подключает где надо.
в проектах этой библиотеки нет, то есть она не требуется. Вы проект создаете?
Можно скомпилировать без создания проекта.
1. Настраиваете переменные среды (Панель управления - Система и безопасность - Система - Изменить параметры - Дополнительно - переменные среды
Переменная среды: PATH
Назначение: путь к исполняемым файлам компилятора или любой программы, если ее необходимо запускать из командной строки
Пример: C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE;C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin;C:\Program Files\Microsoft Visual Studio 10.0\VC\bin;
Перечисление: через точку с запятой.
В конце точка с запятой не обязательна

Переменная среды: INCLUDE
Назначение: путь к заголовочным файлам (расширение .h) для компиляции
Пример: C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include;C:\Program Files\Microsoft Visual Studio 10.0\VC\include;C:\Program Files\Microsoft DirectX SDK (June 2010)\Include;C:\t\dx8\include;

Переменная среды: LIB
Назначение: путь к статическим библиотека (расширение .lib) для компиляции
Пример: C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib;C:\Program Files\Microsoft Visual Studio 10.0\VC\lib;C:\Program Files\Microsoft DirectX SDK (June 2010)\Lib\x86;C:\t\dx8\lib;

Нужно учитывать, что C:\Program Files в переменных среды можно задать как %PROGRAMFILES%\Internet Explorer;
Путь к системной директории Windows задается как %SYSTEMROOT%

После изменения переменных среды, обязательна перезагрузка для вступления изменений в силу

2. компилируете проект из командной строки cl game.cpp painter.cpp tetris.cpp tetromino.cpp well.cpp _без создания проекта_ и _без stdafx_
0
0 / 0 / 0
Регистрация: 05.08.2014
Сообщений: 7
28.12.2014, 21:25  [ТС] 10
Игру я хотел бы для начала создать простую, чтобы можно было ходить. Мне бы хотелось найти справку по Directx, где было бы описание direct2d. Для начала хотелось бы понять как нарисовать спрайт и заставить его двигаться.
0
55 / 55 / 12
Регистрация: 25.06.2012
Сообщений: 285
Записей в блоге: 1
28.12.2014, 22:15 11
2D частный случай 3D.....
Камера сбоку а на квады натягиваешь текстуры и проецируешь ортогонально или как захочешь...
Frank Luna DirectX 11 тебе нужна эта книга...лучшего не найдёшь!
0
0 / 0 / 0
Регистрация: 05.08.2014
Сообщений: 7
29.12.2014, 11:35  [ТС] 12
Смотрел эту книгу. Там всё работают с 3D. Без 2d. Если её прочитать, то можно будет понять, как это сделать?
0
55 / 55 / 12
Регистрация: 25.06.2012
Сообщений: 285
Записей в блоге: 1
29.12.2014, 12:17 13
Что для тебя есть 2D? Картинка с видом с боку? Угадал?
Ну сделай камеру сбоку с ортогональной проекцией и будет тебе 2D.
0
29.12.2014, 12:17
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.12.2014, 12:17
Помогаю со студенческими работами здесь

Создать губку Менгера, но чтобы ее можно было вращать
Здравствуйте, ребята, у меня такой вопрос, надо создать Губку Менгера, на так что бы его можно было...

Как создать DLL на С++, чтобы его можно было подключить к VBA?
Нужно, чтобы можно было создавать в VBA объекты классов, которые описаны в C++. Как подключить к...

Что нужно добавить чтобы так можно было писать код?
ниже кусок кода ' область связывания переменных с ячейками Сorrect =...

Что написать такого, чтобы можно было отправлять потенциальному работодателю?
Работодатель просит показать ему код, которым я горжусь :) Как по мне, так звучит бредово. Если я...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
Как создавать приложения для iOS/iPhone
InfoMaster 12.01.2025
Введение в разработку iOS-приложений Разработка приложений для iOS открывает огромные возможности в мире мобильных технологий. С каждым годом количество пользователей iPhone и iPad растет,. . .
Как использовать Kotlin в Android разработке
InfoMaster 12.01.2025
Язык программирования Kotlin, разработанный компанией JetBrains, стал неотъемлемой частью современного мира Android-разработки. Первоначально представленный в 2011 году, Kotlin был официально. . .
Использование Go (Golang) в backend разработке
InfoMaster 12.01.2025
Язык программирования Go (Golang), разработанный компанией Google, стал важным инструментом для разработчиков программного обеспечения, особенно в области бэкенд-разработки. С момента своего. . .
Как работать с Laravel в PHP
InfoMaster 12.01.2025
Введение в Laravel Laravel представляет собой современный PHP-фреймворк с открытым исходным кодом, который значительно упрощает и ускоряет процесс разработки веб-приложений. Этот фреймворк был. . .
Как программировать под HCL Notes и создавать свои продукты на ее основе
InfoMaster 11.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой мощную платформу для разработки корпоративных приложений, которая сочетает в себе функции электронной почты, календаря,. . .
Как работать с SVN (Subversion)
InfoMaster 11.01.2025
Введение Система контроля версий является неотъемлемой частью современного процесса разработки программного обеспечения. Она обеспечивает управление изменениями в коде, позволяет отслеживать. . .
Использование GraphQL в JavaScript
InfoMaster 11.01.2025
Введение в GraphQL и его преимущества В современной разработке веб-приложений эффективный обмен данными между клиентом и сервером играет ключевую роль. GraphQL представляет собой язык запросов и. . .
Администрирован­­­­ие Git, продвинутые техники работы с Git
InfoMaster 11.01.2025
Основы управления репозиторием Эффективное управление Git-репозиторием требует глубокого понимания механизмов контроля доступа и инструментов администрирования. Рассмотрим ключевые аспекты. . .
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru