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


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

megainformatic - Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 4
        Мастер-класс: Создание моде
подробнее...

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

megainformatic - Учимся создавать флеш-игры, что нужно знать для того, чтобы заняться созданием flash приложений и игр ?

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 - Сайты живущие вне поисковых систем. Есть ли такие и как их найти ?

подробнее

     
  Игра: Дорога в Город (freeware)  
  игра Дорога в Город  
  Жанр: автоаркада  
     
  Версия: 18.10.2006  
     
  игра Дорога в Город - заставка  
  игра Дорога в Город - игровой процесс  
  игра Дорога в Город - таблица рекордов  
     
 

Новое время, идет продвижение энергоресурса нового поколения КОР, Вы - в центре событий, выступаете в роли Андреаса - сборщика и распространителя КОРа. Вам придется собирать ресурс - АЙТ, накапливать средства и выполнять различные задания: скоростная езда с лавированием в потоке машин со сбором айта на время, перевозка сотрудников лабораторий, поиск секретных лабораторий противника, покупка технологий и многое другое.

Основа игры - движение на автомобиле. (На скриншоте желтая машина - игрок). Но не все так просто - нужно следить за уровнем повреждений и запасом топлива, вовремя ремонтироваться и заправляться. На все это нужны средства - КОР-КРЕДИТЫ. АЙТ, который Вы будете собирать и сдавать и принесет Вам искомые средства. Будте осторожны на дороге, не сбивайте пешеходов!

 
     
 

В игре 10 игровых миссий. Суть игры: двигайтесь вперед быстро или медленно, лавируйте уворачиваясь от препятствий или вовремя останавливайтесь - возможна резкая остановка (клавиша - СТРЕЛКА ВВЕРХ).

Действие развивается по нарастающей - сначала простой сбор АЙТА и сдача в лаборатории с получением КОР-КРЕДИТОВ, затем скоростной сбор АЙТА (на время), перевозка сотрудников (СОИСКАТЕЛЕЙ) и многое другое. По ходу игры Ваш автомобиль постепенно улучшает свои характеристики в плане сбора АЙТА и увеличения максимальной скорости движения...

 
     
 

Дистрибутив игры содержит встроенную справочную систему, где можно подробно узнать о том, как играть. В комплекте несколько музыкальных саундтреков. Для проигрывания имеется аудио-плеер (автор -Оливье Лаписку). Музыкальные файлы можно также прослушивать через известный аудиоплеер WinAmp (он поддерживает формат IT)..

Для запуска плеера используется специальный пункт меню программы: Options > RunModPlug

 
     
  СИСТЕМНЫЕ ТРЕБОВАНИЯ: DirectX 7 и выше; Pentium 100MHz и выше; 32Mb RAM; 2Mb Video RAM; DirectX-совместимая звуковая карта, 21 Mb пространства на жестком диске.  
     
 

скачать игру - самораспаковывающийся архив 8,7 Mb

[downloads:19]
скачать игру - самораспаковывающийся архив 8,7 Mb

пароль к архиву: bj4r-vn35-guhj-gv85-4jfg

 
     
 
[downloads:2] открытый полный исходный код игры - архив WinRar 3.3 - 237Kb
 
     
  игра Дорога в Город - описание игры  
  игра Дорога в Город - Mod Plug Player  
     
 

Открытый проект Дорога в Город (Road To City)

===============================================
Открытый код игры Дорога В Город (версия 18.10.2006)
===============================================
автор: Синицин А.С.
дата публикации: 30.03.2007

Введение

Вашему вниманию предлагается исходный код игры на Delphi 7 с использованием библиотек DelphiX 1.07 (by Jaro Benes) или UnDelphiX под Delphi 7. О том где взять эти библиотеки см. ниже!

Игра создавалась около года, это первый игровой (пока некоммерческий) проект автора.
Для компиляции требуется библиотека DelphiX или UnDelphiX c кодом, адаптированным для среды Delphi7.
Исходный код игры также написан в Delphi7, в других версиях не тестировалось,
так что будьте готовы к модификациям кода, если используете другую версию
Delphi.

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

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

- пример создания 2D-игры на Delphi в DelphiX для DirectX7;

- игра содержит 10 уровней.

- показано движение спрайтов, анимация, скроллинг экрана (сверху-вниз), проверка столкновений для эффекта аварий, сбора ресурсов, остановки возле зданий;

- воспроизведение звуков; для музыки используется внешний плеер ModPlug Player;

- при помощи инструментов редактирования DelphiX можно посмотреть графическую реализацию графики и анимации - содержимое файлов *.dxg;

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

Планы развития проекта:

- Создание редактора карт;

- Разумное поведение других авто на дороге;

- Миди-музыка;

- Реализация начальной заставки, игрового меню;

- Развитие игры;

- Учет времени shareware-версии.

 
     
 

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

Основной код приложения реализован в классе TMainForm, остальные типы - производные от TImageSprite и служат для управления игровыми спрайтами - в игре они статичные и анимированные. Тип TGamePaused служит для вывода картинки "Game Paused" во время паузы в игре (по F3); Тип TScrollBackground представляет прокручиваемый фон (трава). Дорога выводится динамически. Класс игрока - TPlayerSprite.

Для лучшего понимания работы приложения Road2City необходимо представлять порядок вызова методов класса TMainForm. Он следующий:

{методы design time} - при помещении новых компонентов DelphiX на форму приложения добавляется соотвествующий код (автоматически). Однако для нормальной работы компонентов во время runtime необходимо правильно их настроить. Главный компонент вашего приложения, занимающий всю площадь формы - это TDXDraw. Он отвечает за отрисовку графики и инкапсулирует соотвествующие методы DirectX 7. Что значит инкапсулирует? Это значит, что в его составе есть соотвествующие описания методов, а мы их вызываем и используем для своих целей. Некоторые из них вызываются автоматически за счет компонентной природы (TDXDraw происходит от TComponent).

Для любой игры на DelphiX Вам потребуются следующие компоненты на форме -

TDXDraw, TDXTimer, TDXSpriteEngine, TDXImageList, TDXInput, TDXSound, TDXWaveList и , возможно, некоторые другие (которые Вы найдете в обновленных библиотеках DelphiX).

Ядром библиотеки DelphiX является DirectX, поэтому особо не удивляйтесь величию DelphiX. Он только служит оболочкой, описывающей обращение к методам DirectX, а также выполняет некоторые дополнительные (но весьма рутинные) операции типа создания списка изображений, его загрузки, вывода спрайтов.

TDXTimer - используется для периодического вызова определенных методов, главным образом метода TDXDraw.Flip без которого просто ничего не появится на экране. TDXDraw.Flip вызывает показ сформированного в буферной памяти кадра игры в предоставленной ему области (окне приложения или на всем экране - в полноэкранном режиме). Установите необходимый интервал времени (свойство Interval), лучше просто - 0 (самый быстрый интервал !)

TDXSpriteEngine - отвечает за анимацию, т.е. последовательный вызов метода Move для каждого из принадлежащих ему спрайтов. Свойство TDXSpriteEngine.DXDraw должно содержать ссылку на компонент TDXDraw, иначе не будет анимации!

TDXImageList - загрузка списка изображений, их отрисовка. Для свойства DXDraw также укажите ссылку на TDXDraw иначе не будет отрисовки или даже ошибки будут!!

TDXInput - ввод от клавиатуры, мышки, джойстика и других устройств ввода. Здесь ничего указывать не требуется, можете только изменить значения клавиш для виртуальных IsButton1-32. Это делается двойным щелчком по компоненту.

TDXSound, TDXWaveList - используются для вывода звуков. TDXSound - интерфейс IDirectSound7, а TDXWaveList, то же, что и TDXImageList, но для списка звуков. Следовательно свойство TDXImageList.DXSound должно содержать ссылку на TDXSound.

{методы runtime} - рассмотрим что происходит при исполнении нашего приложения.

методы TMainForm.FormCreate, FormDestroy, FormClose содержат весь код инициализации, вызываемый при создании/уничтожении формы, закрытии окна приложения. Посмотрев код внутри этих методов Вы увидите что примерно требуется делать при создании/уничтожении окна формы вашей игры.

После того, как форма успешно создана/уничтожена происходит дальнейшая работа/завершение работы приложения. Обратите внимание! Я не случайно указал эти методы в паре Создание/Разрушение. Всегда создавая новый объект сразу же прописывайте и соответствующий код разрушения (Destroy, к-ый вызывается ч/з Free). Большинство ошибок начинающих писателей игр связано именно с тем, что забываем создать/уничтожить требуемые объекты!!!

Итак, если приложение все-таки заработало, что происходит дальше? Т.к. у нас на форме установлен TDXTimer, то дальше всё основывается на периодически вызываемых методах внутри метода TDXTimer.OnTimer

Загляните внутрь него и сами всё увидите!!!

Ладно, вообщем в кратце этого достаточно. Остальное я думаю, сможете постигнуть сами! Если Вы настоящие писатели игр или желаете стать таковыми. В этом Вам помогут всевозможные Help'ы по DelphiX и желательно раздобыть по DirectX SDK!!!, исходники и много много терпения и упорства!

 
     
 

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

http://www.torry.ru/pages.php?id=169

по этим ссылкам вы найдете стартовые странички, с которых можно скачать последние версии компонентов DelphiX и UnDelphiX.

 
     
 

Некоторые замечания по поводу работы с DelphiX (и UnDelphiX, далее просто DelphiX, подразумевая все последние обновления и модификации).

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

Однако вот Вам первое полезное замечание - Если Вы хотите изменить содержимое одного из файлов данных с графикой или звуками - *.dxg или *.dxw поступайте следующим образом:

- откройте форму вашего приложения и найдите соответствующий компонент, используемый для работы со списком изображений или списком звуков - DXImageList или DXSoundList;

- щелкните по нему правой кнопкой мыши и выберите Open для открытия файла данных, найдите и откройте требуемый файл;

- произведите необходимые изменения файла - т.е. загрузку/удаление новых пунктов/файлов в список;

- сохраните изменения в файл правым щелчком по компоненту DXImageList или DXSoundList на форме и выбором Save, указав требуемые имя и путь в соответствующем окне диалога;

- закройте проект вашего приложения БЕЗ СОХРАНЕНИЯ ИЗМЕНЕНИЙ!!! Это очень важно! В противном случае будут наблюдаться некие негативные последствия: рост объема исполнимого файла и "торможение" среды Delphi при работе с проектом.

Почему?

Потому что, если сделать это, то файл данных остается внутри соответствующего компонента - DXImageList или DXSoundList и тем самым увеличивает объем исполнимого файла, кроме того "затормаживается работа" среды Delphi при открытии такого проекта, что будет вызывать у Вас искреннее удивление!

Вместо этого сохраняйте содержимое измененного файла *.dxg или *.dxw правым щелчком по компоненту DXImageList или DXSoundList и выбором Save, а измененный проект закрывайте БЕЗ ИЗМЕНЕНИЙ!!! (т.е. не сохраняя).

Таким образом, Вы оставите компонент пустым, это не будет приводить к указанным выше последствиям (росту исполнимого файла и "торможению" Delphi при открытии проекта).

Обновленные версии DelphiX к тому же содержат специальные инструменты (DXGEdit, DXWEdit) для изменения содержимого файлов *.dxg или *.dxw, поэтому также можете использовать и их!

Загрузка файлов данных *.dxg или *.dxw в соответствующие компоненты будет производиться Вами на стадии runtime (т.е. во время нормальной работы приложения). Как это делается показано в исходном коде!

Желаю Вам приятной работы по освоению DelphiX !!!

 
     
 

Как работать с исходным кодом?
===============================================

Внимание!!! Здесь описано как использовать исходный код игры с библиотеками
UnDelphiX и DelphiX 1.07a (by Jaro Benes).

Для использования кода и нормальной компиляции необходима установка
одной из этих библиотек!!!

Содержание -

Как заставить код работать под DelphiX (by Jaro Benes).
Как заставить код работать под UnDelphiX;


***********************************************
Как заставить код работать под DelphiX (by Jaro Benes).
===============================================

- установить библиотеку;

- в опциях среды Delphi указать путь к DelphiX\Source:
Tools -> Environment Options -> Library -> Library path -> ... -> используя диалог найти Delphix\Source ->
Add
Теперь в проекте ссылку на DelphiX\Source можно не указывать.

- открыть проект Road2City.dpr
попробовать откомпилировать.

> Если сообщения об отсутствии *.dcu, то
добавить в путь поиска проекта ссылку на Source DelphiX

> Сообщение об отсутствии DirectDraw.dcu
в разделе interface секции uses вместо DirectDraw задать DirectX

uses
..., DirectX;


компилируем.


Как заставить код работать под UnDelphiX;
===============================================

Установить библиотеку -

пример установки UnDelphiX:

запустить соответствующий вашей версии Delphi файл с расширением dpk -
например для Delphi 7 это файл (из папки Source) - DelphiX_for7.dpk

нажать кнопки Compile, затем Install

сохранить изменения в проект.

в пути поиска используемого проекта или среды Delphi добавить ссылки на папку Source
с кодом DelphiX -
Project > Options > Directories/Conditionals > ... > ... Add > [DelphiXpath]\Source > OK
, где [DelphiXpath] - путь к папке, куда вы скопировали библиотеку DelphiX

библиотека установлена!

=================================================

Теперь как работать с исходным кодом проекта Road2City :


- Запускаем файл проекта - двойным щелчком по Road2City.dpr

получаем сообщение об ошибке -
Error reading SpriteEngine.Items: Property Items does not exist.
Ignore the error and continue? ...

Если мы произведем отмену, то после компиляции во время запуска
будем получать сообщение об ошибке или форма приложения не будет
создана во время открытия проекта.

Метод устранения - нажимаем кнопочку Ignore и ничего страшного не произойдет!


------------------------------
Замечания:

22/03/2007
Как настроить среду Delphi, чтобы при использовании
комбинации Ctrl + LMouseButton (команда Find Declaration контекстного меню редактора кода)
осуществлялся переход на описания методов и типов, по которым производился щелчек?

30/03/2007

ответ:
Если на названии какого-либо типа или модуля не срабатывает команда Find Declaration,
то в этом модуле имеются ошибки (Errors), предупреждения (Warnings).

 
     
подробнее

Развитие сайта - временная капсула


Развитие сайта - это его дальнейшая жизнь, которая
начинается с момента когда он был создан.

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

Поэтому расскажу о своем.


В далеком 2006 году я начал делать свой первый сайт.

Тогда еще на бесплатном хостинге и без поддержки динамического
наполнения - т. е. на голом html, который я толком то еще
и не знал.

Для создания применял конструктор html страниц - dream weaver.

Уже не помню какая там версия была, то ли 3, то ли 5.

Одним словом не нужно было помнить названия кучи тегов.
Достаточно было кликнуть по панельке инструментов.

С тех давних пор конечно многое изменилось.

Я освоил html / css / php / mysql / js.

Но знаний никогда не бывает достаточно.

Сейчас уже появляются новые технологии, новые инструменты.

Например уже мало знать как сверстать сайт.

Желательно уметь верстать его адаптивно, мобильно.

Мало создать сайт, требуется развернуть для него качественный
сервер, а для этого конечно - научиться разворачивать
и настраивать сервера.

Одним словом жизнь не стоит на месте.

Поэтому знания приходится постоянно пополнять и расширять.

С другой стороны, конечно, я всегда придерживаюсь и 
каких-то собственных интересов, потому что все на свете
изучить просто невозможно.

И если даже ты считаешь себя гуру в какой-то одной области,
то во всех других ты полнейший профан.

И это не так уж плохо. Иначе бы один человек мог сосредоточить
в своих руках все ключевые технологии.

Но нет, такого не происходит, и думаю не произойдет никогда.

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

Особенно игр.

Не секрет, что каждый мечтает создать свою игру.

Но с появлением таких площадок как steam, качество проектов
упало почти до нуля.

Поскольку игр очень много, то интерес к ним обесценивается.

Это как взять и продавать алмазы по дешевке.

Если алмазы стоят недешево и купить их не так легко, то
они и ценятся выше.

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

Сейчас же масса второсортных проектов. Просто потому что
возможностей создать их - море, но вот возможности довести
начатое до конца хватает не у всех.

Когда проект начат, энтузиазм угасает и начинается рутина,
то моментально пропадает к нему интерес.

А значит игра (приложение, какое-то хорошее начинание) откладывается
в долгий ящик, лежит там и пылится до лучших времен, а может
и навсегда.

Таких игр (приложений, сайтов, каких-то хороших начинаний) очень
и очень много. Гораздо больше чем завершенных как логически, так
и технологически.

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

Несколько первых проектов (игр) так и не были завершены.
Иногда не хватало знаний и навыков, но чаще всего банально
не было времени или желания продолжать начатое.

Почему ?

Оправданий можно найти миллион. Но все оправдания - оправданны.
Уж простите за тавтологию.

Зато потом, когда был приобретен некоторый опыт - проекты
стали доводиться до завершения.

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

Ну и конечно же главный тормоз прогресса - это замыкаться
в себе.

Любой проект конечно же делаешь в первую очередь для себя.
Чтобы узнать что-то новое и открыть уже известное.

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

Итак, я подошел к теме - что такое развитие сайта ?

Это не только его технологическая составляющая, но и цели
и задачи, которые должен решать сайт, ради которых он
создавался и ради которых он продолжает жить и развиваться.

САЙТ СВОЙ ИЛИ НЕ СВОЙ

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

Можно привлечь пользователей, которые заинтересуются.

С одной стороны это гораздо легче, чем пытаться создать
свой сайт с нуля.

Но то что легко дается, легко и уходит.

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

Основная цель любой соц. сети - это общение между пользователями.

Я человек не слишком общительный, поэтому особого увлечения
социальными сетями не испытывал.

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

Так что вторая составляющая развития любого сайта - это его
продвижение в массы.

Это не только навязчивая реклама и самореклама везде где только
возможно, но и налаживание контактов, деловых связей и
многого другого.

И все это можно найти на просторах сети. Это могут быть
как социальные сети, так и какие-то самостоятельные проекты.



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


Каждый проект (игра, сайт, какое-то иное начинание) несет с собой
какую-то цель. Он решает некоторый вопрос или проблему, которая
возникает у людей.

Целей этих чаще всего несколько и некоторые из них совсем не
очевидны даже их создателю.


Что же это за слова, по которым можно найти искомое ?

Их никто не знает. Потому что как и сайт, интернет это живая,
динамичная система.

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




подробнее

Creating game on fle game engine - DirectX 9c Draw Line - This can be helpful/ Создание игры на fle game engine - Рисование линий - Это может пригодиться.

read paper in english

Цель данного урока проста - показать как средствами directx 9c рисуются линии.

Иногда это бывает необходимо. Например в редакторе сцены Scene Editor этим способом рисуется сетка (grid), служащая для точного позиционирования игровых объектов в сцене.

Создание игры во fle game engine - Рисование линий - Это может пригодиться

В документации по directx 9c приводится интерфейс ID3DXLine, а также его методы, которые нужно использовать для рисования линий.

Однако нет полноценного примера как применяется это всё вместе.

Мы восполним этот пробел, а в завершении урока Вы сможете скачать готовый результат.

Всё что вам нужно - это иметь базовый исходный код, для создания простого directx 9c приложения (его Вы тоже сможете скачать), а также несколько десятков строк кода, который потребуется чтобы выполнить рисование линий средствами directx 9c.

Суть состоит в следующем:

в модуле start.h внутри класса CD3DGameApp объявляем такие поля и методы:

//draw line
ID3DXLine* m_pLine;
void CreateLine(IDirect3DDevice9* pd3dDevice);
void LineOnLostDevice();
void LineOnResetDevice();
void FillPixel(int x, int y, int w, int h, DWORD color);
void FreeLine();
void DrawPoint(float x, float y, DWORD color);
void DrawLine(float x, float y, float x2, float y2, float width, DWORD color);

в модуле start.cpp реализуем их.


CD3DGameApp::CD3DGameApp()
{
//...
m_pLine = NULL;

void CD3DGameApp::CreateDeviceObjects(IDirect3DDevice9* pd3dDevice) { CreateLine(pd3dDevice); } HRESULT CD3DGameApp::RestoreDisplayObjects(IDirect3DDevice9* pd3dDevice) { //... LineOnResetDevice(); } HRESULT CD3DGameApp::DestroyDisplayObjects() { //... FreeLine(); } HRESULT CD3DGameApp::InvalidateDisplayObjects() { //... LineOnLostDevice(); } //draw line
void CD3DGameApp::CreateLine(IDirect3DDevice9* pd3dDevice)
{
D3DXCreateLine(pd3dDevice, &m_pLine);

}

void CD3DGameApp::LineOnLostDevice()
{
if ( m_pLine != NULL )
{
m_pLine->OnLostDevice();
}
}

void CD3DGameApp::LineOnResetDevice()
{
if ( m_pLine != NULL )
{
m_pLine->OnResetDevice();
}
}

void CD3DGameApp::FillPixel(int x, int y, int w, int h, DWORD color)
{
D3DXVECTOR2 vLine[2];

if ( m_pLine != NULL )
{

m_pLine->SetWidth( (float)w );
m_pLine->SetAntialias( false );
m_pLine->SetGLLines( true );

vLine[0].x = (float)(x + w/2);

vLine[0].y = (float)y;
vLine[1].x = (float)(x + w/2);
vLine[1].y = (float)(y + h);

m_pLine->Begin();
m_pLine->Draw( vLine, 2, color );
m_pLine->End();

}

}

void CD3DGameApp::FreeLine()
{
SAFE_RELEASE( m_pLine );
}

void CD3DGameApp::DrawPoint(float x, float y, DWORD color)
{
FillPixel((int)x, (int)y, 1, 1, color);
}

void CD3DGameApp::DrawLine(float x, float y, float x2, float y2, float width, DWORD color)
{
D3DXVECTOR2 vLine[2];

if ( m_pLine != NULL )
{

m_pLine->SetWidth( width );
m_pLine->SetAntialias( false );
m_pLine->SetGLLines( true );
vLine[0].x = x;
vLine[0].y = y;
vLine[1].x = x2;
vLine[1].y = y2;
m_pLine->Begin();
m_pLine->Draw( vLine, 2, color );
m_pLine->End();

}
}

void CD3DGameApp::DrawGameView() { //draw line DrawPoint(30.0f, 30.0f, 0xFFFF0000); DrawLine(10.0f, 50.0f, 300.0f, 50.0f, 1.0f, 0xFFFFFF00); DrawLine(80.0f, 210.0f, 400.0f, 120.0f, 2.0f, 0xFF00FF00); DrawLine(500.0f, 310.0f, 200.0f, 80.0f, 1.0f, 0xFFFFC017); }

Вот и всё ! Таким образом мы научились рисовать точки и линии произвольного цвета и положения. В коде цвета можно использовать и значение альфа - первая пара чисел, она будет задавать полупрозрачность изображаемого примитива. 0xFFFFC017 - FF - значение альфа, т. е. 255.

Объект линии - m_pLine проходит все те же стадии, что и любой другой directx 9c объект: создание CreateLine, сброс LineOnResetDevice, инвалидацию LineOnLostDevice, освобождение FreeLine, ну и конечно отрисовку DrawLine. Если Вы захотите анимировать линии, тогда вам еще будет нужно реализовать метод анимации, например AnimLine, вызываемый из метода CD3DGameApp::FrameMove вашего приложения.

Скачать пример Draw Line с полным исходным кодом (524 Kb).





Для нормальной сборки проекта вам потребуется DX SDK Aug 2008 и среда разработки MSVS 2005

Подробнее о настройках проекта читайте в приложенном внутри самораспаковывающегося архива файле readme.txt

к содержанию

подробнее

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

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

Прикольный сегодня день ! Сначала два мяча нашлись, теперь дважды освежились. Люблю я лето !!!

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

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

[страница 1] [страница 2] [страница 3] [страница 4] [страница 5]  [страница 6] 

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



Пожалуйста войдите на сайт - Вход

или пройдите процедуру регистрации - Регистрация

megainformatic live chat
Начать беседу
X
 

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



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


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