ria pc game
translate to English   translate to Chinese
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
22 февраля 2019 15:45
Вход Регистрация Забыли пароль ?

megainformatic - Как создать игру - пример Matrices
         
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Шаг 4 в освоении Flash-технологий - как анимировать персонажа и управлять им

megainformatic - Форма для смены шаблонов сайта. Модуль template selector

megainformatic - megainformatic cms express files + module slider

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

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

megainformatic - Разработка flash-приложения для сайта: онлайн примерочная

megainformatic - Мои впечатления о книге - Владислав Крапивин - Журавленок и Молнии

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

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

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

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

megainformatic - Работа с сокетами fsocket из php

megainformatic - Как создать игру Создание игровых панелей и индикаторов

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

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

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

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

megainformatic - обзор антивирусных средств защиты

megainformatic - как работает антивирус ?

megainformatic - Создание сайта для бизнеса

megainformatic - Новый взгляд на очевидные вещи

megainformatic - Разработка программ на c++

megainformatic - Немного о музыке

megainformatic - GET и POST запросы

megainformatic - для чего нужна карта сайта

megainformatic - Web Администрирование

megainformatic - Мысли о разном

megainformatic - Легко ли быть программистом

megainformatic - Глубины программирования на C++

megainformatic - Убираем лимит на размер импортируемого файла в PhpMyAdmin

megainformatic - Как создать torrent файл

megainformatic - Нужна ли валидация вашему сайту ?

megainformatic - Антивирус DrWeb

megainformatic - Калькулятор рассчёта стоимости зубопротезирования для стоматологической клиники

megainformatic - Что такое BitTorrent (БитТоррент)

megainformatic - Миссис Даутфайр 1993 фильм torrent

megainformatic - Как скачивать торрент-раздачу ?

megainformatic - Автотелега фильтр

megainformatic - Фильмы

megainformatic - Fahrengeit Фаренгейт игра 2006 для PC

megainformatic - Fez игра для PC 2013

megainformatic - Дневник памяти - фильм 2004

megainformatic - Scooter - The night - Video and Lyrics - Скутер - Ночь - Видео и лирика

megainformatic - Если всё же неудача

megainformatic - Смерть или искупление или избавление

megainformatic - По ту сторону

cj megainformatic - музыкальный альбом БЕСКОНЕЧНОЕ ДВИЖЕНИЕ ОЖИДАНИЕ И ДЕЙСТВИЕ

megainformatic - Костя Коробкин - Секретный проект - интерактивный комикс

megainformatic - Основы анимации во флеш на примере анимирования простейшей окружности

megainformatic - Парсер сайтов Введение

megainformatic - Я пишу музыку для себя и для продажи

megainformatic - Статьи на околомузыкальные темы - осень 2014 часть 1

megainformatic - рассказ - Чужие воспоминания - автор Синицин Андрей - 24.09.2014

megainformatic - Сайты живущие вне поисковых систем. Есть ли такие и как их найти ?

megainformatic - Game craft - проект разработки игровых и мультимедийных проектов

megainformatic - Game craft - моделируем scv

подробнее

Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 15

Онлайн-комикс Костя Коробкин - В гостях у тёти Светы - интерактивный комикс (kk as).

- Привет !

- О ! Привет !

Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (- интерактивный комикс (kk as) - онлайн комикс - страница 15

если кликать картинку она будет последовательно меняться в размерах от 620 до 2048 пиксель.

[страница 1][страница 2] [страница 3] [страница 4] [страница 5] [страница 6] [страница 7] [страница 8] [страница 9] [страница 10] [страница 11]  [страница 12] [страница 13]  [страница 14] [страница 15] [страница 16] 

подробнее

ria pc game - доска почета



значок / badge имя / name статус / status описание / description
ria pc game значок badge Харухи Судзумия БРОНЗОВЫЙ ЮЗЕР Подарки: имя в финальных титрах проекта, благодарность лично от megainformatic и от Риа, специальный доступ в игру, который открывает больше возможностей. Специальное персональное место в игре
ria pc game значок badge Александр Сычев СЕРЕБРЯНЫЙ ЮЗЕР Подарки: имя в финальных титрах проекта, благодарность лично от megainformatic и от Риа, специальный доступ в игру, который открывает больше возможностей. Специальное персональное место в игре (будет доступно в июльской версии игры). Возможность создавать свои собственные игровые проекты на движке fle game engine, возможность расширить движок или даже написать свой собственный используя накопленный в fle game engine опыт и наработки.
ria pc game значок badge Дмитрий Долгов БРОНЗОВЫЙ ЮЗЕР Подарки: имя в финальных титрах проекта, благодарность лично от megainformatic и от Риа, специальный доступ в игру, который открывает больше возможностей. Специальное персональное место в игре (будет доступно в июльской версии игры).


подробнее

  Уроки Верстки  
     
  Что такое верстка сайтов ?  
     
 

Если заглянуть в энциклопедию или справочник, то можно найти там такое определение:

в полиграфии и издательском деле - это процесс формирования страниц издания путём компоновки текстовых и графических элементов;

Верстка web-страниц - это то же самое с тем лишь отличием, что для представления внешнего вида страницы используется стандарт языка HTML.

 
     
 

Таким образом верстка Web-страниц или сайтов подразумевает создание внешнего вида этих страниц на языке HTML. Сверстанные страницы как правило не содержат функционал или содержат его минимум. Основная задача верстки - внешнее оформление и представление страницы.

Внутренние особенности работы - такие как обработка web-форм, обращение к базам данных, обработка и сохранение информации реализуются на других языках и к верстке не относятся.

В современных условиях, когда существует несколько стандартов языка HTML, обилие браузеров и платформ задачи верстки становятся достаточно объемны - это не только умение красиво и грамотно представить внешний вид страницы, но и обеспечить, чтобы эта страница корректно отображалась в большинстве известных браузеров.

 
     
  Способность страницы одинаково или максимально одинаково отображаться в распространенных браузерах - IE, FireFox, Chrome, Opera и Safari именуют кроссбраузерностью.  
     
  А вот корректность кода HTML на соответствие стандарту и в связи с этим также стремление к максимально правильному отображению в любых браузерах (естественно поддерживающих этот стандарт) именуют валидностью.  
     
 

Добиться того и другого бывает непросто, но возможно. Иногда помогает использование более простого кода, иногда спасает проба и смекалка. Но вот что примечательно - в лоб проблема не решается никогда. Как правило требуются очень изящные решения, на которые бывает натолкнуться непросто, именно поэтому я решил здесь не сыпать теорией, а приводить реальные примеры из практики.

Это будет полезно вдвойне - и мне и Вам. Мне - потому что я смогу поделиться с Вами своим опытом, а Вам - потому что Вы узнаете как решать конкретные задачи на реальных примерах.

 
     
  Ну что ж, случай первый: отображение дивов наложенных друг на друга поверх анимации flash  
     
 

Был сайт, для которого в шапке надо было разместить анимированный flash-ролик, а поверх него в правой части поместить форму поиска сверстанную на обычном html.

Код был написан такой, что содержал два дива, причём вложенные один в другой, т. е. что-то наподобие -

 
     
                    <ДИВ КЛАСС="f_top_title">
                        <ДИВ КЛАСС="f_qs_container">                        
                            <ДИВ КЛАСС="f_quick_search">
                            ЗАКР ДИВ
                        ЗАКР ДИВ
                    ЗАКР ДИВ
 
     
 

русскоязычные написания вам нужно в собственном коде переписать как англоязычные, т.е. ДИВ = div, а КЛАСС = class, ЗАКР ДИВ = </div>

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

 
     
  Далее в css для этих классов был задан такой код -  
     
  .f_top_title {position: relative; top: 0; z-index: 1; height: 332px; background: #ffffff;}
.f_qs_container { position: absolute; top: 0; left: 0; z-index: 999; width: 100%; height: 340px;}
.f_quick_search { position: relative; top: 45px; left: 308px; z-index: 1000;  height: 285px; width: 313px; text-align: left;}
 
     
  В итоге во всех браузерах (IE, Firefox, Chrome, Safari) форма поиска отображалась где и положено, и только в Opera она была почему-то не на месте, а слева по краю контента страницы.  
     
  Однако решение как ни странно оказалось простым -  
     
  .f_qs_container { position: absolute; top: 0; left: 0; z-index: 999; width: 60%; height: 340px;}
.f_quick_search { position: relative; top: 45px; left: 308px; z-index: 1000;  height: 285px; width: 313px; text-align: left; float: right;}
 
     
  На этом маленьком примере видно, что задачей верстальщика на самом деле стало не столько оформление страниц сайта html и css кодом, сколько "борьба" с браузерами и выявление их скрытого поведения на одни и те же взаимозаменяемые html конструкции кода.  
     
  Вложенность ДИВов друг в друга  
     
 

Много раз я сталкивался с задачей позиционирования элементов на странице друг относительно друга. Заметим, что ситуация как раз напоминает решение предыдущего примера. Смысл задачи бывает следующий: даны несколько элементов или блоков, которые нужно разместить в некоторой части страницы в определенных её местах.

Первое что приходит в голову - это объявление их обычным тегом DIV и размещение один за другим с заданными при помощи position, либо при помощи margin или padding отступов. Однако в результате в разных браузерах блоки начинают вести себя не совсем так, как нужно. Они встают не на свои места, а иногда даже на взаимоисключающие друг друга позиции. Я, например, сталкивался с ситуацией когда в ИЕ блоки вставали прямо противоположно тому, как они были отображены в Firefox.

 
     
  Однако стоит вам выделить для нужных блоков отдельный большой блок, а сами эти блоки поместить в него, как задача сразу же решается словно бы сама собой. Т. е. если Вам никак не удается выровнять блоки в разных браузерах одинаково - попробуйте для всех этих блоков выделить отдельную область, создать её в виде большого блока, а более мелкие блоки размещать внутри большого. Тоже самое можно проделывать на уровне более мелких блоков - их можно размещать по принципу более мелкие в своём более крупном и так далее.  
     
  Несколько начальных уроков верстки - http://forum.megainformatic.ru/viewtopic.php?f=9&t=18  
     
     

 

подробнее

Платная подписка на simple game fle game engine версия 1.0.7 от 05.01.2017



Вы можете прямо сейчас оформить платную подписку на fle game engine -



Платная подписка на simple game fle game engine версия 1.0.7 от 05.01.2017


Стоимость: 600 руб.

новый современный движок для создания игр на платформе Windows Directx 9c - которая поддерживается большинством ПК.

Прежде чем оформлять платную подписку Вы можете - ознакомиться с уроками, скачать бесплатные версии утилит, входящих в состав fle game engine.

Приобретая simple game fle game engine версия 1.0.7 от 05.01.2017 Вы получаете:

- полный исходный код игры simple game доступный для модификаций и дальнейшего расширения, на нём можно также создать любую другую игру.

- исходный код включает следующие реализованные функциональные особенности:

- работу с 2d спрайтами;

- загрузку произвольных игровых 2d сцен с произвольным набором игровых объектов, созданных в Scene Editor fge;

- знакомство с позиционированием игровых объектов в векторной системе координат;

- самостоятельное перемещение игровых объектов в сцене и скроллинг игровой сцены;

- оформление обложки игры для игрового экрана, ограничение перемещений;

- реализация проверки столкновений на примере попадания прыгающего шарика в одну из ям игровой сцены;

- начисление и показ набранных очков;

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

- создание новых игровых сцен, дальнейшее расширение и совершенствование игры;



Также вы получаете:

- свежую версию редактора сцен Scene Editor fge - на данный момент версия 1.0.2,

Создание игры во fle game engine - Scene Editor fge 1.0.2 - пример изометрической сцены из проекта игры Веселый Буквоежка

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

Редактор Scene Editor fge поддерживает целый ряд настроек, включающих:

- размеры и цвет ячейки сетки;
- настраиваемый набор игровых ресурсов, которые будут использоваться в вашей игре;
- выравнивание по сетке и без него;
- настраиваемый цвет фона, информационных надписей, вид сетки (полный или сегментный);
- размер игровой сцены в блоках по ширине и высоте;
- автоматический рассчёт координаты Z;
и некоторые другие.





- Бесплатная версия утилиты Coords2D;



  Скачать Coords2D -

Coords2D утилита тестирования спрайтов и определения экранных координат в 2d сценах fle game engine


Размер sfx-архива: 36 Mb. Также содержит много примеров спрайтов и других
изображений из проекта fle, bol и др.

Подробнее





fle game generator - fly snow 3d падающий снег версия 1.0.3.1 от 13.12.2016

fle game generator - fly snow 3d падающий снег версия 1.0.3.1 от 13.12.2016 - расширяемый генератор визуальных образов

подробнее о fle game generator - fly snow 3d падающий снег версия 1.0.3.1 от 13.12.2016

Данная программа позволит создавать различные 2d/3d эффекты. В скором времени появится поддержка создания во fle game engine 3d игр и приложений. Соответственно будет расширен редактор Scene Editor fge.





Набор уроков Шарики на лифте - Как создать игру

Шарики на лифте





подробнее



Набор уроков и примеров с исходным кодом для fle game engine по созданию игр для Windows DirectX 9c на c++ в среде разработки MSVS 2005.

Набор уроков и примеров с исходным кодом для fle game engine по созданию игр для Windows DirectX 9c на c++ в среде разработки MSVS 2005





Список уроков:

КАК СОЗДАТЬ СВОЮ ИГРУ - Веселый Буквоежка Ваше Визуальное Шоу / Fun Letter Eater You Visual Show

КАК СОЗДАТЬ СВОЮ ИГРУ - Набор разработчика игр - Нечто: Необъяснимое - в плену желаний

Как создать игру ? - Программируем сами.

Vertices - Вершины

Уроки Photoshop - Чудеса. Коллаж от нуля

Уроки Photoshop

Уроки Photoshop - Рисуем волка из мультфильма

Создаем анимацию хотьбы волка в Photoshop и ImageReady

Введение в 2d-игры - создаем заставку для игры

Введение в 2d-игры - анимация и движение героя

Уроки Photoshop - Рисуем и анимируем

DirectX 9c - Изучаем пример MultAnimation

Основы работы в Microsoft Visual Studio 2008 и DirectX 9 (DX SDK Aug 2008)

Введение в программирование игр на С++ для платформы DirectX 9

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2)

Основы 3D-анимации, экспорт скелетной анимации

Путешествие в мир 3d

игра "Веселый Буквоежка" - инструменты разработки

Как анимировать паука ?

Game craft - моделируем scv

комплект игра Шарики на лифте + Как создать игру

fle game engine Simple game / Пример простой игры - страница 1 - Спрайты

Здесь приведен лишь краткий перечень уроков.

Все уроки можно найти используя карту сайта

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





Примеры игр и приложений, которые уже созданы на движке fle game engine

Игра road2 city / Дорога в Город freeware + source.

Игра road2 city / Дорога в Город freeware + source


Это самая первая игра написанная еще на delphi 7. Тогда еще не было движка fle game engine, но были заложены первые его основы.





Donuts 3D freeware + source.

Donuts 3D freeware + source


Это пример игры из Directx SDK 8, переписан на delphi 7. Первый пример 3d игры на delphi для будущего движка fle game engine.





Эмулятор электронной игры Электроника ИМ-02 "Ну, Погоди!", версия 1.10 распространяется платно.

Эмулятор электронной игры Электроника ИМ-02


2d Игра на delphi 7 directx 8.1 / msvs 2005 c++ directx 9c. Первая полноценная игра, написанная сразу на двух языках - сначала delphi 7, а затем c++. Также обновилась и платформа - сначала игра была для directx 8, а затем была создана новая обновленная версия для directx 9c.





Нечто Необъяснимое - пре релиз freeware.

Нечто Необъяснимое - пре релиз freeware


Игра на delphi 7 directx 8.1 содержит в себе элементы как 3d, так и 2d - заложила многие основы будущего движка fge. К сожалению проект не был доведен до логического завершения. Но он послужил хорошей основой развития многих особенностей.





Нечто Необъяснимое: в плену желаний freeware.

Нечто Необъяснимое: в плену желаний freeware


Игра на delphi 7 directx 8.1 2d. Это первая полноценная игра, выпущенная на fge в delphi. Содержит основы "одевалок" - игр для девочек, которые сейчас очень популярны в определенных кругах. Во время своего создания таких жанров игр и вообще таких игр не было - она была пионером в своём жанре. Также содержит возможность создавать собственные дополнения без программирования.





Веселый Буквоежка shareware.

Веселый Буквоежка shareware


изометрическая 2d игра на msvs 2005 c++ directx 9c. Самый крупный проект - разрабатывался на протяжении нескольких лет. Составляет основу движка fge. Также пока логически не завершен. Но реализовано очень многое в плане полезности для создания игр и основ игрового движка. Это и Scene Editor - редактор карт, и утилита Coords 2D - для отладки экранных координат,

В самой игре реализованы: аркадный режим и основы создания аркадных игр, режим приключения и основы создания квестов, смена погоды (дождь/ясно), поиск предметов и основы создания игр на поиск предметов, инновационные идеи и их вариации - смесь жанров.

Содержит в себе идеи таких игр, которых в то время еще не было - всем известные Зомби Против Растений - это прообраз аркадного режима когда героя атакуют пауки.

Веселая ферма - режим когда Буквоежка занимается посадкой саженцов деревьев и уходом за ними.

Игры в жанре квест - Петька и Василий Иванович Чапаев. На момент создания игры уже существовала 5 или 6 версия данной игры.

Многие аркадные игры - такие как Супер Марио, Braid и др.

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



серия комиксов о Косте Коробкине - распространяется платно.

серия комиксов о Косте Коробкине - распространяется платно


2d приложение для directx 9c. Распространяется платно. На данный момент выпущено 4 части. 4 часть разбита на 2 подчасти. 1 уже выпущена. 2 близится к завершению.

Комиксы про Костю Коробкина доступны для чтения онлайн, и в виде приложений для Windows DirectX 9c. Повествование сопровождает музыка. Есть возможность останавливать воспроизведение, увеличивать страницы и др. возможности. Можно также создавать свои комиксы и приложения для их показа.



игра Шарики на лифте Серия 1 Разгони Лифт / Balls on Lift Level 1 Run The Lift версия 0.9.2 05.10.2016 / version 0.9.2 05.10.2016 freeware / shareware.

игра Шарики на лифте Серия 1 Разгони Лифт / Balls on Lift Level 1 Run The Lift версия 0.9.2 05.10.2016 / version 0.9.2 05.10.2016 freeware / shareware


2d игра directx 9c. Акрада. Распространяется бесплатно и условно-бесплатно. Создан целый комплект уроков для создания модификаций и дополнений игры Balls on Lift с программированием (в разработке) и без него - Шарики на лифте - Как создать игру.





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

Как создать игру ? - Программируем сами.

Рассмотрение программирования игр под DirectX 9c на C++ с использованием среды разработки MSVS 2005 или выше.

 
     
  [содержание] [назад] [страница 3] [далее]  
     
  Введение в 2d-игры - D3DApp - Внедряем простейшее d3d-приложение  
     
  В предыдущем уроке Мы с Вами создали простейшую игровую оболочку, которая выполняет запуск игры или показ веб-страничек <Купить> или <Еще игр>, подразумевая приобретение полной версии игры или показ других проектов.  
     
  Я надеюсь, что Вы нашли ответ на все свои вопросы, а предложенный метод решения у Вас привел к положительному результату. Если вопросы еще остались - советую практиковаться или задавать вопросы на нашем форуме и по e-mail (см. внизу данной страницы)  
     
  В данном уроке, как я и обещал, мы приступим к созданию основы будущей нашей игры Веселый Буквоежка. По сути игра уже готова - Вам полностью доступен для покупки ПОЛНЫЙ ИСХОДНЫЙ КОД игры ВЕСЕЛЫЙ БУКВОЕЖКА за символическую плату - 200 рублей.  
     
 
 
     
 

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

Как я уже упоминал, сейчас мы займемся рассмотрением реализации функции StartD3DApp.

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

1) Откройте настройки проекта - Project > Fle Properties и в разделе

Configuration Properties > C/C++ > General

в поле Additional Include Directories

пропишите пути к следующим папкам -

 

 
     
  ..\..\..\..\..\Include\;
common\DXUT\Core;
common\DXUT\Optional;
common;
common\DMusic;
game_common;
fmod4_api\inc;
fmod4_api\src;
common\DSound
 
     
  заметьте, что здесь указаны относительные пути, т. е. папка Include представляет папку с заголовочными файлами из DirectX SDK и расположена на пять папок выше относительно текущей папки проекта Fle. Остальные папки должны находиться внутри папки проекта Fle. Их содержимое находится в ПОЛНОМ ИСХОДНОМ КОДЕ игры Веселый Единственный Буквоежка, который Вы можете приобрести.  
     
 

Configuration Properties > Linker > General

в поле Additional Library Directories

..\..\..\..\..\Lib\x86;

fmod4_api\lib

 
     
 

Configuration Properties > Linker > Input

в поле Additional Dependencies

для конфигурации Debug

dxerr.lib dxguid.lib d3dx9d.lib d3d9.lib comctl32.lib dsound.lib shlwapi.lib dinput8.lib winmm.lib fmodexL_vc.lib

для конфигурации Release

dxerr.lib dxguid.lib d3dx9.lib d3d9.lib comctl32.lib winmm.lib dsound.lib shlwapi.lib dinput8.lib fmodex_vc.lib

 
     
  Сохраните эти изменения используя кнопку Save All на стандартной панели инструментов.  
     
  2) Вам постепенно будут требоваться для работы те или иные файлы из ПОЛНОГО ИСХОДНОГО КОДА игры Веселый Единственный Буквоежка, поэтому подумайте о его приобретении, либо Вам придется создавать собственные аналоги, правда зато Вы сможете сделать это совершенно бесплатно.  
     
  Для начала попробуем внедрить в наше приложение код, аналогичный уроку Самый первый шаг, т. е. при нажатии кнопки <Играть> в окне нашей игровой оболочки будет выполняться создание окна и заполнение его рабочей области одним цветом средствами DirectX, а далее мы будем постепенно наращивать этот потенциал.  
     
 

В файле Fle.h добавляем следующие строки кода -

#include <d3d9.h>
#include <d3dx9.h>

//название приложения
#define GameAppName L"Веселый Буквоежка"

INT StartD3DApp();

 

 
     
 

В файле Fle.сpp -

#include "DXUT.h"
#include "SDKmisc.h"

void RenderText();
void InitD3DApp();
void FreeD3DApp();

В методе BOOL CFleApp::InitInstance()

после строки

CWinApp::InitInstance();

изменить -

SetRegistryKey(_T("Fle game"));

код после строк -

CFleDlg dlg;
m_pMainWnd = &dlg;

изменить на -

InitD3DApp();

INT_PTR nResponse = dlg.DoModal();

FreeD3DApp();

return FALSE;

создать реализацию для следующих функций -

 
     
  void InitD3DApp()
{

GetModuleFileName(NULL, AppRootDir, AppRootDirSize);
PathRemoveFileSpec(AppRootDir);

}

void FreeD3DApp()
{

}

void RenderText()
{

// Вспомогательный объект хранит расположение текста и цвет,
// он вызывает метод pFont->DrawText( m_pSprite, strMsg, -1, &rc, DT_NOCLIP, m_clr );
// Если передан NULL в качестве m_pSprite, он будет работать, однако
// метод pFont->DrawText() не будет обработан совместно с методом вывода. Обработка // дополнительных вызовов снижает производительность.

CDXUTTextHelper txtHelper( g_pFont, g_pTextSprite, 10 );

// вывод статистики
txtHelper.Begin();


txtHelper.SetInsertionPos( 4, 0 );
txtHelper.SetForegroundColor( 0xFF0000FF );
txtHelper.DrawTextLine( DXUTGetFrameStats( true ) );

txtHelper.End();
}

 
     
 

//--------------------------------------------------------------------------------------

// Отклонение любых D3D9 устройств не подтвержденных приложением возвратом

// значения false
//--------------------------------------------------------------------------------------

bool CALLBACK IsD3D9DeviceAcceptable( D3DCAPS9* pCaps, D3DFORMAT AdapterFormat, D3DFORMAT BackBufferFormat,
bool bWindowed, void* pUserContext )
{
// обычно исключаем устройства не поддерживающие alpha blending
IDirect3D9* pD3D = DXUTGetD3D9Object();
if( FAILED( pD3D->CheckDeviceFormat( pCaps->AdapterOrdinal, pCaps->DeviceType,
AdapterFormat, D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING,
D3DRTYPE_TEXTURE, BackBufferFormat ) ) )
return false;

// требуется поддержка текстур формата A8R8G8B8
if( FAILED( pD3D->CheckDeviceFormat( pCaps->AdapterOrdinal, pCaps->DeviceType,
AdapterFormat, 0,
D3DRTYPE_TEXTURE, D3DFMT_A8R8G8B8 ) ) )
return false;

return true;
}

 
     
  //--------------------------------------------------------------------------------------
// Модифицировать настройки d3d device до его создания - true
//--------------------------------------------------------------------------------------

bool CALLBACK ModifyDeviceSettings( DXUTDeviceSettings* pDeviceSettings, void* pUserContext )
{
return true;
}
 
     
  //--------------------------------------------------------------------------------------
// создавайте здесь любые D3D9 ресурсы, которые будут существовать до выполнения // // сброса устройства (D3DPOOL_MANAGED)
// и не привязанные к размерам буфера заднего плана
//--------------------------------------------------------------------------------------

HRESULT CALLBACK OnD3D9CreateDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc,
void* pUserContext )
{
HRESULT hr;

V_RETURN( D3DXCreateFont( DXUTGetD3D9Device(), 12, 0, 0, 1, FALSE, DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE,
L"MS Sans Serif ", &g_pFont ) );

return S_OK;
}

 
     
  //--------------------------------------------------------------------------------------
// Создавайте здесь любые D3D9 ресурсы которые не существуют во время сброса // // // устройства (D3DPOOL_DEFAULT)
// или привязанные к размеру буфера заднего плана
//--------------------------------------------------------------------------------------

HRESULT CALLBACK OnD3D9ResetDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc,
void* pUserContext )
{
HRESULT hr;

if( g_pFont )
V_RETURN( g_pFont->OnResetDevice() );

V_RETURN( D3DXCreateSprite( pd3dDevice, &g_pTextSprite ) );

// reset the timer

return S_OK;
}

 
     
  //--------------------------------------------------------------------------------------
// Обработка изменений сцены. Вызывается в соответствии с тем какой D3D API // // // // // используется
//--------------------------------------------------------------------------------------

void CALLBACK OnFrameMove( double fTime, float fElapsedTime, void* pUserContext )
{

}
 
 
     
  //--------------------------------------------------------------------------------------
// Вывод сцены с использованием устройства D3D9
//--------------------------------------------------------------------------------------

void CALLBACK OnD3D9FrameRender( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime, void* pUserContext )
{
HRESULT hr;


// очистка места вывода и z-буфера
V( pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, g_dwClearColor,
1.0f, 0 ) );

// вывод сцены
if( SUCCEEDED( pd3dDevice->BeginScene() ) )
{

RenderText();

V( pd3dDevice->EndScene() );
}
}

 
     
 

//--------------------------------------------------------------------------------------
// обработка сообщений направленных нашему приложению
//--------------------------------------------------------------------------------------

LRESULT CALLBACK MsgProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam,
bool* pbNoFurtherProcessing, void* pUserContext )
{

// тут пока ничего не нужно

return 0;
}

 
     
  //--------------------------------------------------------------------------------------
// Освобождение D3D9 ресурсов созданных в методе OnD3D9ResetDevice
//--------------------------------------------------------------------------------------

void CALLBACK OnD3D9LostDevice( void* pUserContext )
{

if( g_pFont )
g_pFont->OnLostDevice();

SAFE_RELEASE( g_pTextSprite );
}

 
     
  //--------------------------------------------------------------------------------------
// Освобождение D3D9 ресурсов созданных в методе OnD3D9CreateDevice
//--------------------------------------------------------------------------------------

void CALLBACK OnD3D9DestroyDevice( void* pUserContext )
{

SAFE_RELEASE( g_pFont );


}

 
     
  //--------------------------------------------------------------------------------------
// Инициализировать всё и перейти в цикл отрисовки
//--------------------------------------------------------------------------------------

INT StartD3DApp()
{
// Включить проверку памяти времени выполнения для отладочной конфигурации.

#if defined(DEBUG) | defined(_DEBUG)
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
#endif

// Настроить функции обратного вызова
DXUTSetCallbackD3D9DeviceAcceptable( IsD3D9DeviceAcceptable );
DXUTSetCallbackD3D9DeviceCreated( OnD3D9CreateDevice );
DXUTSetCallbackD3D9DeviceReset( OnD3D9ResetDevice );
DXUTSetCallbackD3D9FrameRender( OnD3D9FrameRender );
DXUTSetCallbackD3D9DeviceLost( OnD3D9LostDevice );
DXUTSetCallbackD3D9DeviceDestroyed( OnD3D9DestroyDevice );
DXUTSetCallbackDeviceChanging( ModifyDeviceSettings );
DXUTSetCallbackMsgProc( MsgProc );
DXUTSetCallbackFrameMove( OnFrameMove );

// Задачи на будущее: Выполнять любые инициализации уровня приложения здесь

// Инициализировать DXUT и создать желаемое Win32 окно и Direct3D устройство для // // // приложения
DXUTInit( true, true ); // Обрабатывать параметры коммандной строки и показывать окна сообщений
DXUTSetHotkeyHandling( true, false, false ); // обрабатывать горячие клавиши по-умолчанию
DXUTSetCursorSettings( true, true ); // Отображать курсор и ограничивать его границы в полноэкранном режиме

HRESULT hr;
hr = DXUTCreateWindow( GameAppName ); // Создаем окно DirectX-приложения

SetWindowLong( DXUTGetHWND(), GWL_STYLE,
WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX); // Указываем // // // // некоторые дополнительные параметры окна - запрет кнопки разворачивания окна во // // весь экран

hr = DXUTCreateDevice( true, 800, 600 ); // создаем d3d-устройство, в оконном режиме, // // рабочая область 800х600 пикселей

// запуск цикла отрисовки
DXUTMainLoop();

// Задачи на будущее: Выполнять любую очистку уровня приложения здесь

return DXUTGetExitCode();

}

 
     
 

Замечу, что код, приведенный здесь не структурирован. Так мне его было проще показать здесь. В реальном своем коде вместо например такого кода -

//--------------------------------------------------------------------------------------
// Освобождение D3D9 ресурсов созданных в методе OnD3D9ResetDevice
//--------------------------------------------------------------------------------------

void CALLBACK OnD3D9LostDevice( void* pUserContext )
{

if( g_pFont )
g_pFont->OnLostDevice();

SAFE_RELEASE( g_pTextSprite );
}

 
     
  Запишите Этот же код в структурированном виде удобном для чтения -  
     
  Этот же код в структурированном виде удобном для чтения должен выглядеть так -  
     
 

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

Что еще нужно сделать, чтобы устранить ошибки компиляции -

1) Настроить проект для использования заголовочных и библиотечных файлов DirectX - мы это рассматривали еще в самом первом уроке

2) Подключить библиотеку DXUT - по аналогии с тем, как Вы подключали файлы openwebpage.h и .cpp из папки common - см. страницу 2

 

 
     
 

3) Добавить недостающие переменные - записать их в самом начале файла Fle.cpp после строк

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

следующий код -

ID3DXFont* g_pFont = NULL; // шрифт для вывода текста
ID3DXSprite* g_pTextSprite = NULL; // спрайт для обработки вызовов вывода текста
DWORD g_dwClearColor = 0xFF000000; // цвет для заполнения рабочей области окна

 
     
 

4) В файле FleDlg.cpp в методе void CFle2Dlg::OnLButtonUp(UINT nFlags, CPoint point)

строку кода

//StartD3DApp();

исправить на

StartD3DApp();

 
     
  Теперь при нажатии на кнопку <Играть> в окне оболочки, создается окно размером 804х622, заполненное черным и выводящее в левом верхнем углу статистику по FPS.  
     
  при нажатии на кнопку <Играть> в окне оболочки, создается окно размером 804х622, заполненное черным и выводящее в левом верхнем углу статистику по FPS  
     
  Я надеюсь, что Вы разобрались и у Вас всё получилось. Если нет - задавайте вопросы или перепроверьте все свои действия.  
     
  А теперь двинемся дальше - в следующем уроке мы рассмотрим как вывести начальную заставку для Вашей игры.  
     
     
  [содержание] [назад] [страница 3] [далее]  
     
megainformatic live chat
Начать беседу
X
 

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



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 2,2031