![]() |
||
Как создать игру ? - Программируем сами. Рассмотрение программирования игр под DirectX 9c на C++ с использованием среды разработки MSVS 2005 или выше. |
||
[содержание] [назад] [страница 1] [далее] | ||
Введение в 2d-игры - страница 1 | ||
Надеюсь Вы хорошо разобрались в предыдущих уроках. Эти несколько уроков были первоначальным стартом для новичков подобным бросанию в воду неумеющего плавать человека, и если он успешно выплыл, как и Вы из этих уроков - значит можно смело плыть дальше - чем мы сейчас и займемся. Займемся мы созданием 2d игры на реальном примере игры - Веселый Буквоежка. Мы не только изучим теорию, но и увидим работающий код из работающей игры, а все желающие могут получить весь исходный код этой игры для работы над собственным игровым проектом. О том как получить исходный код будет рассказано далее. |
||
Запускаем MSVS 2005 или выше - то, что у Вас есть под рукой. | ||
Выбираем последовательно пункты меню File > New > Project | ||
В открывшемся окне | ||
![]() |
||
Выбираем пункты - в окошке Project Types: Visual C++ > Win32, в окошке Templates: Win32 Project |
||
Поля Name, Location, Solution Name заполняем именем проекта, указываем где сохранить проект нажав кнопку Browse... и нажимаем OK |
||
![]() |
||
Ждём некоторое время и вот - Среда разработки MSVS создает для нас шаблон проекта Win32 с именем Fle, искать его нужно в той папке, куда Вы указали его сохранить - проект будет окончательно создан в указанной папке после выполнения еще двух дополнительных шагов - | ||
Теперь в открывшемся новом Мастере Настроек проекта нужно задать некоторые опции - В этом окошке Просто написано, что текущие настройки проекта выполнены для обычного Windows - приложения и нужно нажать кнопку Finish чтобы закрыть окно мастера, либо нажать кнопку Next чтобы увидеть еще некоторые опции |
||
![]() |
||
Если хотите увидеть эти дополнительные опции - нажимайте Next | ||
Менять ничего не нужно, просто нажмите Finish | ||
Проект создан. Можете убедиться в этом сами - откройте указанную папку и увидите там множество созданных специальных файлов. В большинстве своем это обычные текстовые файлы, которые можно редактировать не только в Среде разработки MSVS, но и любым текстовым редактором, однако не всегда это следует делать, лучше всего делать это непосредственно в самой среде MSVS. | ||
Чем же так страшна эта MSVS и что же там такого в ней непонятного ? Об этом мы сейчас и поговорим. Всё рабочее пространство можно условно разбить на 4 части - верхняя часть - строка меню и панелей инструментов, левая часть - окно обзора составных частей Вашего проекта, правая часть - большое окно для просмотра и редактирования исходного кода и других файлов, нижняя часть - дополнительные вкладки, окна и строка состояния. |
||
После завершения процесса создания нового проекта в правой части - редакторе исходного кода Вы увидите текст исходного кода, который был создан автоматически. Можно попробовать выполнить сборку проекта - Build > Build Fle, где Fle имя Вашего проекта, а затем попробовать запустить его на выполнение - прямо из среды MSVS - нажав кнопку Start Debugging на панели инструментов, либо выбрав пункт меню Debug > Start Debugging, либо перейдя в папку созданного проекта, в подпапку Debug - двойным щелчком на созданном файле с именем проекта и расширением EXE. |
||
![]() |
||
Созданное приложение основано на шаблоне Win32 и предназначено для обращения к функциям операционной системы посредством WinAPI. Однако в реальных игровых приложениях Вам могут понадобиться классы MFC - Microsoft Foundation Classes. В частности, в примере нашей игры ВЕСЕЛЫЙ БУКВОЕЖКА широко будут применяться такие классы как CPtrArray, CWinApp и некоторые другие. Для того, чтобы использовать MFC совместно с DirectX нужно совсем немного. Попробуем сделать такое приложение. Закрываем созданный проект - File > Close Solution, если программа спрашивает о сохранении изменений - нажимаем Yes - иначе изменения в проекте не будут сохранены !!! |
||
Делаем всё то же самое, что Вы делали до этого - File > New > Project Но далее уже выбираем MFC > MFC Application |
||
![]() |
||
В появившемся окне Мастера настроек MFC - приложения нужно задать следующие опции - в первом окне просто нажать кнопку Next |
||
во втором окне - | ||
![]() |
||
Мы выбрали Dialog Based, потому что наше приложение, да и вообще все игровые приложения должны быть основаны на диалоговых окнах; Use MFC in a static library - чтобы используемые библиотеки подключались к исполнимому файлу статично - без использования дополнительных DLL; Resource language: Английский (США) - т. к. других вариантов не наблюдается; Use Unicode libraries - для использования текстовых строк в формате Unicode |
||
В следующем окне уберите все флажки кроме Minimize box и System menu | ||
В следующем окне уберите все флажки кроме Common Control Manifest | ||
В последнем окне измените названия создаваемых классов или оставьте как есть | ||
Ждём некоторое время и вуаля - шаблон приложения создан. Аналогично можно попробовать его собрать и запустить на выполнение - клавиша [F7] - сборка, [F5] - запуск на выполнение. | ||
Как видим приложение работает достаточно просто - появляется соответствующее окно содержащее кнопки ОК и Cancel. | ||
Изменив используемый шаблон окна диалога можно убрать всё лишнее и оставить только само окно, кроме того, желательно изменить стандартную иконку MFC приложения на Вашу собственную. О том как создавать иконку для приложения Мы уже рассматривали в уроке Изучаем и модифицируем пример CreateDevice - страница 3 | ||
Современные игры, например от таких издателей как Nevosoft и Alawar содержат специальную игровую оболочку, содержащую кнопки Старт, Купить, Другие игры и что-то еще в этом роде. В следующем уроке мы рассмотрим как быстро и просто реализовать свою собственную оболочку для игры ВЕСЕЛЫЙ БУКВОЕЖКА. Она будет выглядеть примерно так - | ||
![]() |
||
[содержание] [назад] [страница 1] [далее] | ||
Пришло время Выяснить, как мы собираемся имитировать падение шарика в ямы.
страница 3 - Наложение объектов
страница 5 - Отображаем прыгающий шарик
страница 6 - Загрузка игровой сцены
страница 7 - Перемещения игровой сцены
страница 10 - Проверка столкновений
страница 11 - Игровой счёт, звуки, музыка
14. использование переменных в игре на c++ directx 9c
Нет ничего невозможного, вероятно Вы догадались, что всего лишь нужно взять блок floor_front, задать для него правильные масштабные коэффициенты xScale, yScale, поскольку они изменятся, а также по описанной ранее методике задать значение z = 0.76
После этого просто вставить эти блоки в нужных местах сцены, там где есть ямы. Урок 8: Настройка параметров сэмплов Сэмплы - это основа любой Вашей композиции. От их качества зависит качество получаемого звука. В MT вы не можете создавать свои сэмплы. Их можно только загружать в готовом виде. Для создания сэмплов используйте другие специализированные программы, например Sound Forge (см. уроки 1,2). Однако есть ряд параметров сэмпла, которые Вы можете задавать, меняя тем самым качество получаемого звука. |
Сэмпл - образец звука, синтезированного или оцифрованного, используемый для проигрывания на разных частотах дискретизации в качестве виртуального музыкального инструмента в трэкере. |
||
Перейдите в окно списка сэмплов - вкладка Samples. Загрузите какой-нибудь сэмпл и посмотрите какие имеются параметры. |
Default volume: громкость сэмпла по умолчанию - вы можете задавать значение 0-64 с клавиатуры - для этого клавишами [Tab] и [Shift]+[Tab] вам нужно перевести курсор в это поле и ввести значение с клавиатуры. Или можно перемещать ползунок - мышью! Global volume: глобальная максимальная громкость которую можно установить для сэмпла. Set pan: значение панорамы (смещение баланса между левым и правым стерео-каналами) по умолчанию. Отсутствие галочки соответствует отключенному состоянию панорамы - когда мы вообще не регулируем ее. Значение поля соответствует заданному балансу. 0 - полное смещение в левый канал и 128 - в правый. Auto-Vibrato, Depth, Sweep, Rate - параметры задающие управление вибрацией звука генерируемого сэмплом. Это соответственно - форма волны вибрации, глубина, скорость и диапазон вибрации. Поэкспериментируйте - сразу поймете что к чему! |
||
Важные характеристики сэмпла: |
В левой половинке окна параметров сэмпла остались самые важные параметры: (Сверху-вниз по-порядку) -Name, File - название сэмпла и имя файла (беспокоиться о его расположении не нужно, т.к. будучи загруженным в композицию сэмпл становится ее частью и располагается внутри), но информация о названии может быть вам полезна тогда, когда Вы захотите загрузить и в другую свою композицию какой-то такой же понравившийся Вам сэмпл; Freq- базовая частота дискретизации сэмпла (Гц) c которой воспроизводится нота в поле Transpose. Принцип генерации звуков всех других нот довольно прост - каждая нота имеет определенное (стандартизированное) смещение в частоте дискретизации относительно базовой ноты (С-4). Например, следующая нота C#4 - имеет смещение в 4 Гц, D-4 - в 1024 Гц и т.п. Таким образом звук более высокой (по тону) ноты проигрывается быстрее давая звук более высокой звуковой частоты и наоборот - медленнее - ниже. Этим способом воспроизводится все богатство нот генерируемых одним лишь сэмплом. Базовую частоту дискретизации сэмпла можно легко изменить - выполнив смещение на полутон или целую октаву или просто введя производльное (до определенного предела) значение. Такое смещение естественно повлияет на расстановку тонов нот. Поэтому если правильный сэмпл использовать с неправильной частотой дискретизации это может привести к эффекту "расстроенного рояля" - т.е. ноты инструмента будут выдавать совсем не те тона, которые им положены. Здесь мы подошли к вопросу о базовой частоте создаваемых сэмплов. Когда Вы создаете свои сэмплы учитывайте частоту звука задаваемую Вами при генерации сэмпла в Sound Forge, а затем проверяйте свой сэмпл на слух в IT и при необходимости корректируйте частоту задаваемую в Sound Forge или базовую частоту дискретизации в IT. У такого способа генерации звуков нот есть и недостаток - ноты верхних октав воспроизводятся с более высокой скоростью, поэтому длительность звука при воспроизведении этих нот становится меньше. Например, если Ваш сгенерированный в Sound Forge сэмпл имел длину в 1 секунду - то эта длина относится только к воспроизведению ноты C-4. Ноты же более низких октав будут длиннее - в соответствии с понижением их частот дискретизации, ноты более высоких октав будут короче.
|
||
Смещение базовой частоты сэмпла - задается выбором ноты из поля Transpose. |
Другие параметры сэмпла: Loop - зацикливание - приводит к бесконечному воспроизведению сэмпла остановить которое можно - нажатием клавиши другой ноты, клавиши [F8]. При проигрывании нот таким сэмплом в паттернах звук можно погасить командой ^^ - клавиша [1] при работе в режиме РЕДАКТИРОВАНИЯ ПАТТЕРНА или командой задающей нулевую громкость - 00 в столбце громкости. Параметр Loop может быть только в одном из трех состояний - Off/On Forward/On Pin-Pong- Выключено/Включено прямое воспроизведение/Включено воспроизведение вида с начала до конца - с конца до начала. Start и End - задают кусок сэмпла, который будет бесконечно повторяться при зацикливании. Значения задаются в байтах от длины сэмпла (len). |
||
Если Вы вдоволь поэкспериментировали со всеми параметрами сэмплов и Вам все более-менее ясно, то можно двигаться дальше. Теперь мы рассмотрим как применяются различные эффекты в деле - т.е. при воспроизведении композиции. Наша задача - научиться управлять этим процессом задавая нужные эффекты при редактировании паттернов. |
Sustain Loop, Start, End - задаются цикл Sustain - удержание звука. Почти то же, что и Loop - но с постепенным затуханием звука.
В окошке ниже должен отображаться вид сэмпла (так как Вы его видите при создании в Sound Forge). |
||
Попробуйте загрузить небольшой примерчик композиции - здесь. И мы займемся его рассмотрением. |
Скачайте
данный пример, распакуйте из архива и откройте из MT. |
||
Предполагаем,
что Вы уже запустили MT и открыли данный пример - композиция primer1.it |
Перейдите в окно редактирования паттернов - вкладка Patterns. Вы увидите в первом канале набор нот и набор команд.
|
||
Теперь Вы можете поэкспериментировать - сначала попробуйте воспроизвести то, что есть - [F5]. Хорошо? Тогда стоп - [F8]. Попробуйте что-нибудь изменить - ноты, эффекты, значения параметров эффектов и т.п. |
Список всех эффектов смотрите в справочной системе - Help > Contents. Читайте и пробуйте! | ||
Ну как? Здорово?! |
Теперь Вы уже знаете почти всё для того, чтобы создавать свою музыку. Опыт придёт к Вам по-мере того, как Вы будете экспериментировать! |
||
|
|||
[Предыдущий урок] | [Все уроки] |