Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Учим DelphiX

div.main {margin-left: 20pt; margin-right: 20pt} Учим DelphiX Первая Часть

Приветствую, ученик. Ты наверное не раз писал какие-нибудь игрульки на Delphi. Что тебе мешало, если в игре было слишком много графики или игровое поле было огромных размеров? Правильно — тормоза, не те, что в голове, а те, что заставляют игру быть медленнее, чем ты хотел. Есть несколько способов от этого избавиться. Первый — вырезать все излишки графики. Второй — получить доступ к видео памяти, но это у тебя не получится. Третий — использовать Delphi X, который сделает все за тебя. Тебе лишь останется писать игру, как с обычным canvas'ом. Как установить? Легко. Качаете арихив с сайта Мир Delphi в разделе компоненты/DelphiX. Распаковываете его. Запускаете Delphi. Далее выбираете «Components/add pacages» и добавляете DelphiX. Все готово для работы, приступим. Вторая часть

Создаем новое приложение, как показанно на рисунке.

Сворачиваем форму (Form1) и делаем следующие изменения:

Как было: uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

Как надо: uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DXClass;

type
TForm1 = class(TDXForm)
private
{ Private declarations }
public
{ Public declarations }
end;

Это поможет нам избезать ошибок, которые могут возникнуть при работе компонентов DelphiX с TForm. Теперь создадим поле для рисования. Это компонент DXDraw. Находим его, как на рисунке.

Ставим его на форму. Размером 640х480 или как вам больше нравится. Меняем свойство Align на AlClient, Deisplay.BitCount с 8 на 16 или 32. И там же мтавим наше разрешение в пунктах Height = 640, Width = 480. Изменим имя (name) на DXDraw без 1. Вот как все должно быть:

Чтобы изображение кажбый раз менялось ставим DXTimer. Вот он:

Ставим параметр Interval на 0, а enabled на false. Теперь изменим события (Events) DXDraw. OnInitialize: пишем там DXTimer1.Enabled := True; //включаем таймер

А в событии OnFinalize пишем DXTimer1.Enabled := false; //выключаем таймер

Теперь переходим непосредственно к отрисовке. В событии DXTimer'а — OnTime пишем if not DXDraw.CanDraw then exit; // Если система не может найти DirectX, то выходим

DXDraw.Surface.Fill(0); // Заполняем все черным, т.е. очищаем экран

Здесь мы можем рисовать линии, точки и т.д. а так же выводить текст. with DXDraw.Surface.Canvas do // на канве DXDraw делаем чего — нить
begin
Brush.Style := bsClear; // Задаем стиль кисти
Font.Color := clWhite; // Цвет текста — белый
Font.Size := 30; // Размер шрифта
Textout(30, 30, 'Hello World'); // Выводим легендарную фразу

Release; // реализуем
end; // заканчиваем работу с поверхностью

DXDraw.Flip; // «тик» DDraw

Теперь сделаем быстрый выход из программы и переход в полноэкранный режим.

У формы изменяем свойство KeyPreview на true. В событии формы OnKeyDown пишем:

Выход из программы if Key=VK_ESCAPE then
Close;

Меняем режим экрана по Alt+Enter if (ssAlt in Shift) and (Key=VK_RETURN) then
begin
DXDraw.Finalize;

if doFullScreen in DXDraw.Options then
begin
RestoreWindow;

DXDraw.Cursor := crDefault;
BorderStyle := bsSizeable;
DXDraw.Options := DXDraw.Options — [doFullScreen];
end else
begin
StoreWindow;

DXDraw.Cursor := crNone;
BorderStyle := bsNone;
DXDraw.Options := DXDraw.Options + [doFullScreen];
end;
DXDraw.Initialize;
end;

Вот и все. Мы создали бланк приложений с DelphiX. Сохраните и создайте резервную копию.

Эту и другие статьи по программированию на Delphi вы можете найти на сайте Мир Delphi.

Автор: Zaluskiy Anton


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте