В данном разделе вы можете получить расширенную справку по всем функциям Perfect Engine. Все материалы раздела удобно поделены на категории в соответствии со структурой движка.


ОПИСАНИЕ

PERFECT ENGINE.PAS
          класс TCamera
          класс TPerfectEngine

peRENDER_CANVAS.PAS
          класс TJPEGBitmap
peRENDER_OPENGL.PAS

peROUTINE.PAS

SaiLight@mail.ru   

vk.com/sailight

НЕЗАВИСИМОСТЬ:

Как уже было сказано выше, движок использует одни и те же функции для вывода графики посредством любого рендера. Вы можете рисовать через GDI (peRender_Canvas.pas), выводить графику в чужое окно или на рабочий стол или использовать видеокарту (peRender_OpenGL.pas) - при замене рендера код программы менять не понадобится. OpenGL подключится так же быстро, как создадутся битмапы в GDI-рендере,  и вместо 15-20 строк назначения формата пикселя в OpenGL вы будете использовать все ту же функцию peRenderInitialize(), а все остальное движок сделает за вас автоматически!

 

С появлением рендера на OpenGL (Perfect Engine 2.0)  в вашем распоряжении оказывается, также, удобный инструмент выбора рендера при старте программы. Как это работает - вы можете посмотреть в демо-реализации движка - игре Crown, размещенной на нашем сайте.

ЗАКЛЮЧЕНИЕ:

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

 

Несмотря на свою кажущуюся простоту, Perfect Engine имеет множество дополнительных функций, избавляющих программиста от объемных рутинных задач. Движок активно развивается, и на данный момент с его использованием уже написано несколько проектов, в числе которых есть и один коммерческий.

 

А на данном сайте вы можете сообщить нам обо всех ошибках и недработках в Perfect Engine и получить соответствующую техническую поддержку. Если же у вас есть готовые проекты, использующие наш движок - свяжитесь с нами, и мы с радостью поделимся ими здесь. А лучшие проекты смогут появиться на главной странице данного сайта!

ПРИМЕР:

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

 

uses ..., PerfectEngine, peRender_Canvas;

const  PL = 'Perfect Light Programming Project';

var

...
vEngine: TPerfectEngine;//Объект движка
vSpriteNum: Integer;//Номер изображения в массиве
vFrameNum: Integer;//Номер кадра анимации

//Событие вывода кадра
Procedure pDraw();

begin

vEngine.pDrawFrame(vSpriteNum, vFrameNum, 250, 175, 128, 128, True);
vEngine.pTextOut(PL, 5, 5, 18, $fff3cc77);
Inc(vFrameNum);
if (vFrameNum > vEngine.Texture[vSpriteNum].FramesCount - 1) then

vFrameNum := 0;

end;
//Создание формы
procedure TfrmMain.FormCreate(Sender: TObject);
begin

vEngine := peRenderInitialize(Handle, ClientWidth, ClientHeight);
vSpriteNum := vEngine.fLoadTexture('Sprite.jpg', False, 128);
vEngine.pBindFont('Palatino Linotype');

vEngine.TimerInterval := 50;
vEngine.onDraw := pDraw;

end;
//Закрытие формы
procedure TfrmMain.FormDestroy(Sender: TObject);

begin

peRenderDestroy();

end;

 

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

 

 

Perfect Light Design Project, 2015