Difference between revisions of "ZenGL Tutorial 2/ru"
Line 12: | Line 12: | ||
== Создание программы == | == Создание программы == | ||
− | *Создаем пустой | + | *Создаем пустой проект и ссылаемся на ZenGL как это было описано в предыдущей статье. |
*Создадим директории: | *Создадим директории: |
Revision as of 08:34, 31 May 2011
│
English (en) │
español (es) │
français (fr) │
русский (ru) │
ZenGL/ru |
Tutorial 1 |
Tutorial 2 |
Tutorial 3 |
Edit
Создание шрифта ZenGL
Создадим шрифт ZenGL. Для решения поставленной задачи нам потребуется скачать генератор шрифтов ZenFont. Запустив программу, вы увидите что-то похожее на картинку ниже:
Создание программы
- Создаем пустой проект и ссылаемся на ZenGL как это было описано в предыдущей статье.
- Создадим директории:
projectname\bin
projectname\data
projectname\project
- Сохраним проект по пути: "projectname\project".
- Скопируем шрифт (.ZFI файл) в "projectname\data"
- Идем в Project > Options > Paths и в Target file name допишем "..\bin\project1".
Исходный код
<delphi>var
dirRes : String {$IFNDEF DARWIN} = '../data/' {$ENDIF}; // это путь к ресурсам fnt : zglPFont; // это шрифт, который мы будем использовать</delphi>
Загрузим шрифт: <delphi>procedure Init; begin
fnt := font_LoadFromFile( dirRes + 'Agency FB-Regular-18pt.zfi' );
end; </delphi>
Процедура рисования (тут мы рисуем текст нашим шрифтом): <delphi>procedure Draw; var
rect: zglTRect;
begin
text_Draw( fnt, 0, 0, 'Sample Text. Press ESC to EXIT.' );
text_DrawEx( fnt, 32, 32, 1.5, 0, 'Sample Text with DrawEx - Scale 1.5 - Alpha 150', 150 );
rect.H:=128; rect.W:=400; rect.X:=0; rect.Y:=96;
pr2d_rect(rect.X,rect.Y,rect.W,rect.H,$FFFFFF,100);
text_DrawInRect(fnt,rect, 'Sample multiline text in rect.' + #10 + 'Sample multiline text in rect.'+ #10 + 'Sample multiline text in rect.');
end; </delphi>
Код выхода из программы по нажатию ESC: <delphi>procedure Timer; begin
if key_Press( K_ESCAPE ) Then zgl_Exit(); key_ClearState();
end; </delphi>
Результат
Теперь вы можете увидеть текст напечатанный нашим шрифтом
Конечный код будет выглядет примено так:
<delphi>program project1;
{$IFDEF WINDOWS}
{$R *.res}
{$ENDIF} {$DEFINE STATIC}
uses
{$IFNDEF STATIC} zglHeader {$ELSE} zgl_main, zgl_screen, zgl_window, zgl_timers, zgl_keyboard, zgl_font, zgl_text, zgl_textures, zgl_textures_tga, zgl_primitives_2d, zgl_utils, zgl_math_2d {$ENDIF} ;
var
dirRes : String {$IFNDEF DARWIN} = '../data/' {$ENDIF}; fnt : zglPFont;
procedure Init; begin
fnt := font_LoadFromFile( dirRes + 'Agency FB-Regular-18pt.zfi' );
end;
procedure Draw; var
rect: zglTRect;
begin
text_Draw( fnt, 0, 0, 'Sample Text. Press ESC to EXIT.' );
text_DrawEx( fnt, 32, 32, 1.5, 0, 'Sample Text with DrawEx - Scale 1.5 - Alpha 150', 150 );
rect.H:=128; rect.W:=400; rect.X:=0; rect.Y:=96;
pr2d_rect(rect.X,rect.Y,rect.W,rect.H,$FFFFFF,100);
text_DrawInRect(fnt,rect, 'Sample multiline text in rect.' + #10 + 'Sample multiline text in rect.'+ #10 + 'Sample multiline text in rect.');
end;
procedure Timer; begin
if key_Press( K_ESCAPE ) Then zgl_Exit(); key_ClearState();
end;
Begin
{$IFNDEF STATIC} zglLoad( libZenGL ); {$ENDIF}
timer_Add( @Timer, 16 );
zgl_Reg( SYS_LOAD, @Init ); zgl_Reg( SYS_DRAW, @Draw );
zgl_Enable( APP_USE_UTF8 );
wnd_SetCaption( 'Sample Text' );
wnd_ShowCursor( TRUE );
scr_SetOptions( 800, 600, REFRESH_MAXIMUM, FALSE, FALSE );
zgl_Init();
End. </delphi>