Сегодня
11 декабря 2017
6:55
Вход Sign In Регистрация Sign Up Забыли пароль ? Forgot password ?
VARVE - Уроки Photoshop - Рисуем волка из мультфильма стр 3
           
подробнее...

Теги

сайты, игры, дизайн, продвижение, php, html, css, my sql, c++, delphi, photoshop, 3ds max, fl studio, трекерская музыка, уроки

Статьи сайта

Пишем слайдер на javascript с нуля

Логика работы слайдера на javascript

Пишем свою соц. сеть - модуль предложений для webjob

Пишем свою соц. сеть - модуль предложений для webjob - часть реализации для личного кабинета

Пишем свою соц. сеть - Реализация файлового хранилища предложений в csv-файле

Тестирование подключения к платежной системе ЕДИНЫЙ КОШЕЛЕК (w1.ru) с использованием скрипта эмулятора

Пишем свою cms - шаг 1

Пишем свою cms - шаг 2

Пишем свою cms - шаг 3

бесплатная флеш игра freeway fury 2 - разработчик Serius Games

бесплатные флеш игры сторонних разработчиков

Как я осваивал Flash

Список уроков на тему создания flash приложений и игр

Как я осваивал Flash - шаг 2 - Основы создания простейших flash - игр

проект портала Идеи Комфорта

игра Веселый Буквоежка

игра Веселый Буквоежка

Использование cron, crontab и планировщика задач

Совместное использование jquery и mootools или других js-фреймворков

Модуль content php performer для megainformatic cms

Пишем компактный слайдер

Что нужно знать для создания сайта ?

Что нужно знать для создания сайта ? Глава 2 - Кодировки и DOCTYPE

Что нужно знать для создания сайта ? Глава 3 - Идём дальше - нанизываем новый код - где объявляются стили css и код javascript

Что нужно знать для создания сайта ? Содержание

Что нужно знать для создания сайта ? css - стили

preg_match или Использование регулярных выражений в php

статьи Тимонина Андрея - Flash. Содержание

статья Тимонина Андрея - Flash. Подготовка к работе.

статья Тимонина Андрея - Flash. Hello world.

статья Тимонина Андрея - Flash. Экспорт SWC библиотеки.

Тимонин Андрей - Несколько слов о себе

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

статья Тимонина Андрея - Обеспечиваем доступ к объекту из любой точки программы. Singleton

статья Тимонина Андрея - Хронология работы программы. Создаем Лог

статья Тимонина Андрея - Поиск файлов. Получаем список файлов каталога.

статья Тимонина Андрея - Исключения. Создаем класс обработки исключений.

статья Тимонина Андрея - States. Создаем менеджер состояний игры.

статья Тимонина Андрея - Регистрация. Часть 1. Создаем страничку регистрации на сайте.

статья Тимонина Андрея - Регистрация. Часть 2. Создаем обработчик, и заносим информацию о пользователе в Б.Д.

статья Тимонина Андрея - Таймер. Выводим время игры.

статья Тимонина Андрея - DirectX9. Создаем основной класс обработки графики.

статья Тимонина Андрея - DirectX9. Создаем первое приложение.

Что нужно знать для создания сайта ? float - использование в css - стилях

Уроки Fruity Loops Studio (FL Studio) - урок 2 - пишем свою композицию COLD

Уроки Fruity Loops Studio (FL Studio) - урок 3 - экспериментируем с композицией COLD

Что нужно знать для создания сайта ? Стандартные шрифты для сайта

Что нужно знать для создания сайта ? ASC II Коды символов

Уроки Fruity Loops Studio (FL Studio) - урок 4 - пишем первый вариант композиции COLD

Популяризация Современных Научных Знаний и Размышления на околонаучные темы. СОДЕРЖАНИЕ

Популяризация Современных Научных Знаний и Размышления на околонаучные темы. Энергетический кокон

Модуль галерей для любой cms

Уроки Photoshop - Быстрый старт

Мои Музыкальные Миры - страница 2

megainformatic cms rs

Мега Информатик - Примеры моих работ

Мега Информатик - Портфолио выполненных проектов сайтов и приложений

Уроки Photoshop - Текстуры

Уроки Photoshop - Создаем текстуру горной породы

Уроки Photoshop - Создание вариантов на тему созданной текстуры

Уроки Photoshop - Рисование текстуры травы

Уроки css - атрибут position

Уроки Photoshop - Рисование текстуры песка

Уроки Photoshop - Подготовка набора текстур

Уроки Photoshop - Рисование текстур глина, грязь

Новогодняя дискотека 2013 на megainformatic точка ru

Программируем на C++ с использованием MFC

Программируем на C++ с использованием MFC - Создание MFC приложения

Программируем на C++ с использованием MFC - Создание MFC приложения - hello, world !

Как создать игру ? - Пишем игровой движок с нуля

Как создать игру ? - Пишем игровой движок с нуля - Вступление

Как создать игру ? - Пишем игровой движок с нуля - Общая структура будущего игрового движка

Разное

Как создать игру ? - Пишем игровой движок с нуля - DXUTMainLoop - цикл работы DirectX-приложения

Варианты макетов Психолог 911

Шаблоны для сайтов - что это и какие они бывают ?

Уроки Photoshop - текстуры

Мои Музыкальные Миры - готовая музыка mp3 - новинки 2013 года

Уроки Photoshop - Огонь, создание огня

Уроки Photoshop - Создание растительных текстур и объектов

Fruity Loops Studio 9 - Как синтезировать свои сэмплы - изучаем возможности плагина Sytrus

Видоизменяем тему для Wordpress под свои нужды

Уроки Photoshop - Продолжаем создавать основные типы текстур - металл

Уроки Photoshop - Остановимся на создании элементно-упорядоченных текстур на примере создания чешуевидной текстуры

Уроки Photoshop - Займемся рисованием небесных текстур - небо и облака

Человеко-понятный УРЛ - рассматриваем достоинства и недостатки

Все уроки Photoshop на varve точка ru

Из жизни известных программистов - юмор

Dr Web проверка сайта на вирусы

Основы верстки

Что нужно знать для создания антивируса ?

С Днём Святого Валентина

С Днём рождения !

Мои Музыкальные Миры - готовая музыка mp3 - новинки 2013 года - музыка и звуки для игры Brain Storm / Мозговая Атака

С Праздником 8 Марта Вас Дорогие женщины !!!

Разное - 8 марта 2013 - Шашлыки :))))

Программирование на языке ассемблера - Урок 2 - первая полезная программа - выполнение арифметических вычислений - сложения, вычитания, умножения и деления

Программирование на языке ассемблера - содержание

Мои Музыкальные Миры - готовая музыка mp3 - новинки 2013 года - музыка и звуки для игры Zomby Brain Burger

Создание сайта бесплатно или под заказ

zbb

Программирование на языке ассемблера - Урок 3 - первая полезная программа - выполнение арифметических вычислений - сложения, вычитания, умножения и деления - разбираем логические ошибки

Мои Музыкальные Миры - готовая музыка mp3 - новинки 2013 года - альбом Бесконечное Движение

Уроки Photoshop - Создание тканеподобных текстур

Уроки Photoshop - Раскраска

Уроки Photoshop - Варианты раскраски

Как создать flash баннер ?

Модуль отзывов/комментариев для вашего сайта

Модуль короткие ссылки short link

Приключения Кости Коробкина - Как я провел лето - интерактивный комикс

Новогодняя вечеринка 2014 на varve.ru

Приключения Кости Коробкина - С новым годом - интерактивный комикс

megainformatic - Система управления сайтом на php - megainformatic cms admin files

varve Композиции музыкального альбома ОЖИДАНИЕ и ДЕЙСТВИЕ - автор Синицин Андрей aka cj andy megainformatic

cj megainformatic подборка композиций ЛЕТО 2014

varve.ru лицензионное соглашение с конечным пользователем

     
  Исходный код примера игры Donuts3D из DirectX SDK 8.1 на Delphi 6-7  
     
 
Скачиваний : 0
 
     
 

Исходный код примера игры Donuts3D из DirectX SDK 8.1 на Delphi 6-7

===============================================
Donuts3D (версия 13.07.2007)
===============================================
автор конверсии на Delphi 6-7: Синицин А.С.
дата публикации: 15.07.2007

Введение

Вашему вниманию предлагается исходный код примера игры Donuts3D взятый из DirectX SDK 8.1 (написан на C++) и конвертированный на Delphi 6-7 с использованием библиотеки с ОБЩИМ КОДОМ.

Пример игры служит хорошей технологической основой с которой можно начать разработку собственного игрового проекта Delphi DirectX 8.1.

Системные требования

- Наличие среды Delphi 6, 7 или выше для компиляции исходного кода, наличие среды MSVS 7, 2003 или выше для редактирования и компиляции ресурсного файла *.res;

- Операционная система Windows 98SE/2000/XP sp2 или выше с установленным DirectX 8.1 или выше;

- минимум ПК уровня Pentium II с тактовой частотой 300 МНz или выше, RAM 32 Mb и выше, 4-8 Mb Video RAM и выше, DirectX-совместимая звуковая карта, мышь.

- Рекомендуется наличие DirectX SDK 8.1 или выше (для изучения DirectX);

- Терпение, старание и желание создавать компьютерные игры.

Особенности примера

Особенности кода

- Программный код на Delphi 6-7, WinAPI без использования VCL, загрузка формы из файла-ресурсов *.res сгенерированного в MSVS 7, 2003 и выше.

- для компиляции необходима библиотека с ОБЩИМ КОДОМ на Delphi 6-7 (содержит заголовки Direct3D8.pas, D3DX8, DirectInput8, DirectSound8, DirectMusic8, D3D Utils, SXModPlayer2 и т.д.);

Особенности игры

- управление от клавиатуры, мыши (DX8_DIUtil8.pas);

- 3D-камера с 3мя видами: со стороны, от третьего лица, от первого лица;

- воспроизведение звуков (DMUtil.pas);

- загрузка медиа-файлов из внешних файлов/из ресурсов внутри EXE-файла;

- анимация 2D спрайтов, представление их в сцене в виде 3D-объектов (за счет billboarding);

- вывод заставки на поверхность окна средствами WinAPI, гашение экрана, 4 вида оружия, 11 видов кораблей, столкновения, взрывы, ограничение движения по карте и многое другое.

Исходный код содержит:

- Демонстрацию того, как конвертировать исходники C++ из DX SDK на Delphi;

- Шаблон того, как начать создание собственного игрового проекта Delphi DirectX 8.1;

- Реализацию и заголовочные файлы на объектном Паскале (библиотека с ОБЩИМ КОДОМ).

 
     
 

Путеводитель по исходному коду

Вступление

Кого-то из нас мучают вопросы: Можно ли научиться создавать компьютерные игры? Можно ли писать их не на C++, а каком-то другом языке?

Ответом служит данный пример. Во-первых, сама идеология DirectX рассчитана на любой язык программирования (любую среду разработки), но так уж исторически сложилось, что основная база написания самого DirectX и DirectX-приложений - это C++ ориентированная среда. Ближайшим средством разработки является конечно же MSVS (Microsoft Visual Studio). Однако существуют и другие среды, например, такие как C++ Builder и Delphi компании Borland.

Замечу сразу, что я, как автор данного примера не буду спорить о том, какая из сред разработки лучше или хуже и чем. Рассмотрение этого вопроса оставляю Вам - читателям этих материалов. Скажу лишь, что для меня ситуация сложилась таким образом, что выбор пал на Delphi. Несомненно знание С++ никоим образом Вам не помешает, а только лишь поможет! Если Вы еще не решили с чего начинать, что смело начинайте с C++ и MSVS! Однако если все-таки, по каким-то причинам, Вам всё же ближе Delphi... Начнём!

Особенности написания кода

Для работы с интерфейсами DirectX Вам понадобятся объявления типов и COM-классов DirectX. К счастью, в Интернет можно найти заголовочные файлы переписанные на Delphi. Кроме того, они служат примером того, как конвертировать C++ заголовки на Delphi. Эта информация и эти навыки Вам тоже рано или поздно понадобятся, особенно если Вы планируете плотно засесть за Delphi DirectX. DirectX постоянно обновляется. После выхода такой, ставшей практически стандартом де-факто платформы как DirectX 8.1 сразу же последовали DirectX9, DirectX9c. На подходе уже DirectX10, который Вы сможете применять в Windows Vista. Поэтому переход на эти платформы потребует от Вас новых конверсий на Delphi. Есть конечно и OpenGL... Но, опять таки, я не являюсь специалистом по OpenGL. За всеми технологиями сразу не угонишься. Кроме того и сама среда Delphi тоже постоянно обновляется - Delphi 9, Delphi 2005 ... Это тоже требует постоянных обновлений кода.

Остановившись пока на чем-то одном, чтобы развивать свои навыки не вширь, а вглубь выберем Delphi 6 - 7 и DirectX 8.1 и возьмем пример игры Donuts3D. Работа с DirectX потребует от Вас, независимо от того, на чем Вы будете писать (на С++ или Delphi), умения писать приложения WinAPI без использования кода подключаемых библиотек, таких как MFC, VCL. Конечно же использование MFC (на С++) или VCL (на Delphi) использовать Вам никто не запрещает, более того, на каком-то этапе Вам это обязательно потребуется как технология или как пример ее реализации. Однако без знания WinAPI двигаться дальше просто не имеет смысла, т.к. DirectX это COM-технология, а использование COM - это WinAPI и ... Delphi. Delphi и VCL тоже построены на принципах COM - т.е. Component Object Model.

Как написать WinAPI

Запускаем Delphi 6-7;

Создаем новый проект -
File > New > Application

Т.к. мы будем писать WinAPI приложение (без использования VCL), то нам необходимо избавиться
от всего лишнего, что было автоматически создано Delphi -
пунктом меню Project > Remove from Project удаляем из проекта модуль Unit1 с формой окна приложения.
В ответ на вопрос Remove ... ? отвечаем Yes.

Теперь нужно открыть модуль файла проекта (по-умолчанию Project1.dpr) и отредактировать его содержимое. Для открытия его нажмите комбинацию Ctrl+F12 и выберите из списка Project1. Этого же
можно добиться выбором пункта меню View > Units.

Сначала сохраним проект в файле под нужным нам именем - File > Save Project As и указываем требуемую папку и имя, в нашем случае, Donuts3D, для файла проекта.

Используя MSVS открываем оригинальный C++ проект и компилируем его для создания скомпилированного файла ресурсов, в нашем случае - donuts.res

Теперь возвращаемся к Delphi

Итак, содержимое файла Donuts3D.dpr нужно отредактировать следующим образом -
---------------------
uses
Windows,
donutsU in 'donutsU.pas';

{$R donuts.res}

var
hPrevInst: LongWord;
begin
hPrevInst := 0;
{$WARN SYMBOL_PLATFORM OFF}
ExitCode := WinMain(HInstance, hPrevInst, CmdLine, CmdShow);
{$WARN SYMBOL_PLATFORM ON}
end.

-----------------------
Где donutsU - это модуль, который нужно добавить командой File > New > Unit и сохранить
под именем donutsU.pas в папке Delphi-проекта Donuts3D

Теперь нужно настроить Ваш проект для использования папки с ОБЩИМ КОДОМ.
Предположим, что папка с ОБЩИМ КОДОМ называется common и находится на 2 уровня
выше, чем папка Donuts3D, т.е. относительные пути из папки Donuts3D к папке с ОБЩИМ КОДОМ
запишутся следующим образом -
..\..\common
..\..\common\Borland_D6-7

Чтобы задать эти пути, как используемые Вашим проектом дайте команду -
Project > Options > Directories/Conditionals > Search Path > ... и добавьте эти пути кнопкой Add.
Если Delphi не подсветит пути серым (как недоступные), значит Вы сделали настройку правильно,
в противном случае - Вы где-то напутали с указанием пути. Можно задать и абсолютные пути,
но они менее универсальны.

Остается сохранить измененные параметры проекта - File > Save All.

Далее Вам остается только заниматься конверсией и написанием кода внутри файла donutsU.pas,
создавать и добавлять необходимые новые модули и писать их содержимое, а также добавлять их
использование в секцию uses интерфейсной части модуля donutsU.pas или других модулей.

Но всё это Вы уже найдете внутри готовых исходников данного проекта, которые уже созданы автором
для Вас.

 
     
  Для облегчения понимания функционирования типового DirectX-приложения приведем структурную схему функционирования -  
     
  Структура типового DirectX-приложения  
     
 

Поясним схему. WinMain - это головная процедура, с которой начинается выполнение любой программы. Она может называться как угодно, потому что ее вызов происходит не по имени, а по точке входа в программу, однако, традиционно ее называют WinMain. Данная процедура вызывается в модуле проекта *.dpr (см. исходный код). В свою очередь, процедура WinMain содержит вызовы всех остальных функций - разворачивающих структуру приложения.

Create_ - функция начальной инициализации окна приложения;

OneTimeSceneInit - функция, содержащая вызовы других функций, отвечающих за инициализацию DirectX-объектов приложения - CreateInputObjects (объекты управления приложением через интерфейс IDirectInput), CreateSoundObjects (инициализация звука и музыки, загрузка необходимых файлов), CreateDisplayObjects (инициализация объектов Direct3D-сцены, загрузка необходимых моделей, текстур), ConstructMenus (специфичная для примера Donuts3D функция, отвечающая за инициализацию специфических объектов экранного меню приложения), AsAppState_LoadSplash - это не функция, а тип состояния приложения Donuts3D, который устанавливается по окончании выполнения функции OneTimeSceneInit (специфичный для данного примера).

WndProc - оконная процедура приложения. Она называется процедурой обратного вызова, т.к. вызывается не самим приложением, а операционной системой, которая направляет поток сообщений, предназначенных данному приложению путем вызова этой функции. Из этой процедуры происходит вызов функции обработки сообщений приложения - MsgProc. Процедура WndProc - этот как раз отражение структуры функционирования типового WinAPI-приложения, управляемого потоком сообщений (событий). Как и положено в основу идеологии данной схемы - большую часть времени получает управление операционная система. При возникновении событий, направленных приложению, находящемуся в фокусе, ему направляются сообщения и оно обрабатывает их. Особенностью DirectX-приложений по сравнению с чистыми WinAPI-приложениями, является то, что окончив обработку поступивших сообщений приложение продолжает функционировать в цикле Idle Time (т.е. во время бездействия приложения) - происходит выполнение наиболее ресурсо-емких операций - отрисовка 3D-сцены, все остальное время приложение открыто для принятия сообщений (действий со стороны пользователя). Пример реализации этого вы найдете в функции Run примера Donuts3D.

Run - запуск цикла обработки сообщений. Цикл не завершается пока функционирует приложение.

Во время Idle Time (бездействие - отсутствие действий со стороны пользователя) происходит вызов функций FrameMove и Render отвечающих за формирование анимации и отрисовку готового кадра соответственно. Как это происходит - см. исходный код функция Run.

 
     
  исходный код примера игры + откомпилированный EXE-файл + необходимые мультимедиа-файлы (1,59 Mb)
Скачиваний : 0
 
     
  архив с ОБЩИМ КОДОМ (766 Кб)766 Кб  
     
     
     
     
     
     
     
     
     
     
     
     
     
     
 

Оставленные комментарии



Рейтинг@Mail.ru
Время загрузки: 0,3305