电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

SDL学习笔记二中文字体的显示


发布日期:2019/2/13
 

曾今一段时间热心的想学习游戏编程于是研究起了SDL第一篇文章《SDL学习笔记一 图片和字体显示》是月份写的至此之后就停了下来

最近的一段时间有热心起来拾起以前的代码继续研究!写《SDL学习笔记一 图片和字体显示》一文时我没有找到中文的显示方法今天参照《SDL & Object Pascal (Delphi) [] 显示中文字符》一文做了个小鬼搬家也算重新学习的开始吧!

下面是代码同样使用Delphi配合JEDISDL

program Project;

uses

SysUtils

SDL

SDL_TTF;

var

screen:PSDL_Surface;

event:TSDL_Event;

font: PTTF_Font;

outtxt: WideString;

procedure draw_unicode_text(word: WideString ; x_posy_pos : Integer;

color :Cardinal);

var

text : PSDL_Surface;

dest : TSDL_Rect;

clr : TSDL_color;

begin

clrr := Color and $FF;

clrg := (Color shr ) and $FF;

clrb := (Color shr ) and $FF;

// 用到了两个全局对象screen和font

text:= TTF_RenderUNICODE_Blended(font@word[]clr);

destx:=x_pos;

desty:=y_pos;

SDL_BlitSurface(textnilscreen@dest);

SDL_FreeSurface(text);

end;

begin

if SDL_Init(SDL_INIT_VIDEO)< then Exit;

if TTF_Init()< then Exit;

SDL_WM_SetCaption(Delphi SDL Demonil);

screen:=SDL_SetVideoMode(SDL_SWSURFACE);

if (screen=nil) then

begin

SDL_Quit;

exit;

end;

font:=TTF_OpenFont(f);

outtxt:=JEDISDL 演示程序;

draw_unicode_text(outtxt$FF);

draw_unicode_text(SDL中文输出测试$);

draw_unicode_text(Code By Shaoyun$FF);

SDL_Flip(screen);

while SDL_PollEvent(@event)>= do

begin

case eventtype_ of

SDL_QUITEV: Break;

SDL_KEYDOWN:

case eventkeykeysymsym of

SDLK_ESCAPE: Break;

end;

end;

end;

TTF_CloseFont(font);

TTF_Quit;

SDL_Quit;

exit;

end

上一篇:显示鼠标指示地方的全部文本

下一篇:把Flash文件转换为Exe文件