Ввыводим текст и графику, используя DelphiXDelphi , Графика и Игры , DirectX и DelphiXВвыводим текст и графику, используя DelphiX
Итак, цель нашего первого урока - вывести текст и графику. Сначала определимся, куда же пихать эти самые текст и графику. Сначала поставьте на форму DXDraw, при этом в свойствах, в разделе "Options" измените "doFullScreen" и "doFlip" на "True", чтобы при запуске программа заполняла весь экран. Запустите и проверьте. Если вы видите черный экран, все нормально. Выходить придется Ctrl-Alt-Del'ом, так как процедуры выхода из программы мы еще не написали. "Рабочий стол" готов. Теперь нарисуйте какую-нибудь картинку, по размерам экрана. Я возьму "Космос"( черный экран и белые точки, рисуется распылителем в Paint'e), сохраняем, как "cosmos.bmp". Вроде этого: Теперь нарисуем то, что должно будет двинаться по "космосу" в следующих уроках, а пока это самое будет просто отображаться. Я опять же нарисую в Paint'у летающую тарелку(жирный овал,"tarelka.bmp"), вроде этого: Копируем эти рисунки, в папку с Дельфи-проектом. Ставим на форму DXSpriteEngine и DXImageList. Выбираем в их свойстве "DXDraw" "DXDraw1", уже сконфигурированный нами в предыдущем абзаце. В свойствах Имаг-листа(DXImageList) выбираем "Items". В раскрывшемся окне создаем два объекта, назовем их "cosmos" и "tarelka", в свойстве "Picture" укажем путь к "cosmos.bmp" и "tarelka.bmp" соответственно. Теперь самое сложное: поскольку ДельфИкс создавал какой-то, хоть и очень умный, но один человек, а не корпорация, нам придется ВРУЧНУЮ прописывать класс спрайтов(рисунков). Открываем редактор кода, в части "Implementation", после "Var" пишем "type" и с новой строчки:
Разбираемся: "Tcosmos" - имя будущего класса, "Class(TImageSprite)" - указывает, что будущий класс относится к ImageSprite'ам, "Public" - указывает, что следующий раздел глобальный, "Constructor" - указывает, что следующая процедура относится к подклассу конструкторов, "Create(AParent: TSprite); Override;" - надо заучить как молитву, т.к. эта процедурка будет создавать ВСЕ спрайты в ваших программах, "End;" обозначает, что описание класса завершено. Но процедуры мало Описать, их надо ещё и ПРОписать. В этом же разделе, после описания всех классов, пишем:
Учить точно так же, как и описание этого самого конструктора. Изменятся будут только подчеркнутые элементы. "Form1.ImageList1.Items.Find('cosmos')" - путь к спрайту "cosmos", меняться будут толко имена спрайтов. "x" - координата по горизонтали, у всех фоновых рисунков равна единице. "y" - координата по вертикали, у всех фоновых рисунков также равна единице. "z" - глубина рисунка, при наслоении двух спрайтов отображается тот, у которого "z" больше, у всех фоновых рисунков равна минус единице. Также пишем и тарелку:
Как видите, изменилась только подчеркнутая часть. Итак, описания закончены. Теперь перейдем непосредственно к выводу на экран. Создаем DXTimer, в событие onTimer пишем:
Разбираем: а разбирать тут и нечего, учить надо, это процедура инициализации DirectX! Второй абзац - процедура вывода текста, последняя строка отрисовывает все объекты. Теперь смотрив события формы и создаем обработчик события onCreate. Пишем:
Запускаем, и видим тарелку на звездном фоне! Если не видим, то тут три возможности:
Готовую программу можно скачать здесь или на сайте автора http://instrumentari.narod.ru и свериться, если что-то не работает В статье описывается вывод текста и графики с использованием библиотеки DelphiX. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: DirectX и DelphiX ::
|
|||||||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |