Михаил Краснов - Графика DirectX в Delphi

Здесь есть возможность читать онлайн «Михаил Краснов - Графика DirectX в Delphi» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Графика DirectX в Delphi: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Графика DirectX в Delphi»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Графика DirectX в Delphi — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Графика DirectX в Delphi», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

if KeyDown(DIK_LEFT) then GameMap.WrapScrollLeft(MapScrollSpeed);

if KeyDown(DIKJJP) then GameMap.WrapScrollUp(MapScrollSpeed);

if KeyDown(DIK_DOWN) then GameMap.WrapScrollDown(MapScrollSpeed);

if KeyDown(DIK_ESCAPE) then frmDD.Close;

end;

На рис. 5.15 запечатлен момент работы нашего очередного примера (проекта каталога Ех16), в котором на экране выводятся координаты пользовательского курсора.

Рис 515 Пример вывода текста и обработки событий мыши Для изображения - фото 41

Рис. 5.15. Пример вывода текста и обработки событий мыши

Для изображения курсора предназначена отдельная поверхность, для которой задается ключ:

GameCursor := CDXSurfасе.Create;

GameCursor.CreateCDXSurfaceFromFile(GameScreen,'Cur.bmp');

GameCursor.ColorKey(0);

Для заднего буфера задается конкретный шрифт:

GameScreen.GetAppBackBuffer.ChangeFont('Times', 16, 20, FW_BOLD);

Аналогично процедуре обработки клавиатуры, требуется процедура, связанная с событиями мыши. Обратите внимание, как организована прокрутка изображения:

procedure UpDateMouse;

var

TempX, TempY : Integer;

begin

TempX := GameInput.Mouse.X; // Смещение по осям

TempY := Gamelnput.Mouse.Y;

CurX := CurX + 3 * TempX; // Текущие координаты курсора

CurY := CurY + 3 * TempY;

// Анализ положения курсора вблизи границ экрана

if CurX < 0 then CurX := 0 else

if CurX > ScreenWidth - MapSizeX then CurX := ScreenWidth - MapSizeX;

if CurY < 0 then CurY := 0 else

if CurY > ScreenHeight - MapSizeY then CurY := ScreenHeight - MapSizeY;

if CurX = 0 then begin

if TempX < 0 then GameMap.WrapScrollLeft(-TempX);

end else

if CurX = ScreenWidth - MapSizeX then

if TempX > 0 then GameMap.WrapScrollRight(TempX);

if CurY = 0 then begin

if TempY < 0 then GameMap.WrapScrollUp(-TempY);

end else

if CurY = ScreenHeight - MapSizeY then

if TempY > 0 then GameMap.WrapScrollDown(TempY);

end;

Вывод текста на экран осуществляется с помощью метода TextxY заднего буфера:

function TfrmDD.UpdateFrame : HRESULT;

var

wrk : TRECT;

begin

Gamelnput.Update;

UpdateKeys;

UpdateMouse;

SetRect (wrk, 0, 0, ScreenWidth, ScreenHeight);

GameMap.DrawClipped (GameScreen.GetAppBackBuffer, wrk);

// Вывод курсора

GameCursor.DrawFast(CurX, CurY, GameScreen.GetAppBackBuffer);

// Вьшод текста

GameScreen.GetAppBackBuffer.TextXYUO, 10, 255,

'CDX Example for Delphi');

GameScreen.GetAppBackBuffer.TextXY(10, 30, 255, PChar('X= ' +

IntToStr(CurX))); GameScreen.GetAppBackBuffer.TextXY(10, 50, 255, PChar('Y= ' +

IntToStr(CurY)));

Result := GameScreen.Flip;

end;

Последний пример на эту тему (проект катшюга Ех17) поможет нам разобраться в организации спрайтовой анимации. Здесь вид курсора меняется со временем так, что получается изображение страшного животного, раскрывающего зубастую пасть (рис. 5.16).

Рис 516 При работе примера чудовище раскрывает и закрывает свою пасть Фазу - фото 42

Рис. 5.16. При работе примера чудовище раскрывает и закрывает свою пасть

Фазу можно менять, используя метод setTile, как в одном из предыдущих примеров, или же напрямую задавая прямоугольник источника:

Inc (Delay);

if Delay = 10 then begin // Прошло 10 кадров

// Меняем прямоугольник в источнике

SetRect (GameCursor.SrcRect, 39 * wrkl, 0, 39 * (wrkl + 1), 36);

wrkl := (wrkl + 1) mod 3;

Delay := 0;

end;

В данном разделе мы рассмотрели лишь основные функции библиотеки CDX, все остальные остаются вам для самостоятельного изучения.

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

Что вы узнали в этой главе

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

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

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

Примеры несложных игр убедительно демонстрируют достигнутые нами высоты мастерства.

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

Глава 6 Работа с AVI-файлами

Модуль VFW

Модуль DirectShow

Запись в видеофайл

Что вы узнали в этой главе

Эта небольшая глава посвящена вопросам, относящимся к воспроизведению и созданию видео. Многие аспекты напрямую не связаны с DirectX и поэтому вынесены в отдельную часть.

Примеры к главе располагаются в каталоге \Examples\Chapter06.

Модуль VFW

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

Прежде всего мы познакомимся с модулем vfw.pas, не входящим в набор стандартных модулей Delphi, но работающим со стандартной системной библиотекой avifil32.dll.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Графика DirectX в Delphi»

Представляем Вашему вниманию похожие книги на «Графика DirectX в Delphi» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Графика DirectX в Delphi»

Обсуждение, отзывы о книге «Графика DirectX в Delphi» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x