程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> SDL學習筆記二 中文字體的顯示

SDL學習筆記二 中文字體的顯示

編輯:Delphi

 曾今一段時間熱心的想學習游戲編程,於是研究起了SDL,第一篇文章《SDL學習筆記一 圖片和字體顯示》是07年7月份寫的,至此之後,就停了下來。

  最近的一段時間有熱心起來,拾起以前的代碼,繼續研究!寫《SDL學習筆記一 圖片和字體顯示》一文時,我沒有找到中文的顯示方法,今天參照《SDL & Object Pascal (Delphi) [2] 顯示中文字符》一文,做了個小鬼搬家,也算重新學習的開始吧!

SDL學習筆記二 中文字體的顯示

  圖片看不清楚?請點擊這裡查看原圖(大圖)。

  下面是代碼,同樣使用Delphi7,配合JEDI-SDL:

 1program Project1;
 2
 3uses
 4    SysUtils,
 5    SDL,
 6    SDL_TTF;
 7
 8var
 9    screen:PSDL_Surface;
10    event:TSDL_Event;
11    font: PTTF_Font;
12    outtxt: WideString;
13procedure draw_unicode_text(Word: WideString ; x_pos,y_pos : Integer; 
14    color :Cardinal);
15var
16    text : PSDL_Surface;
17    dest : TSDL_Rect;
18    clr : TSDL_color;
19begin
20    clr.r := Color and $FF;
21    clr.g := (Color shr 8) and $FF;
22    clr.b := (Color shr 16) and $FF;
23    // 用到了兩個全局對象screen和font
24    text:= TTF_RenderUNICODE_Blended(font,@Word[1],clr);
25    dest.x:=x_pos;
26    dest.y:=y_pos;
27    SDL_BlitSurface(text,nil,screen,@dest);
28    SDL_FreeSurface(text);
29end;
30begin
31    if SDL_Init(SDL_INIT_VIDEO)< 0 then Exit;
32    if TTF_Init()<0 then Exit;
33    SDL_WM_SetCaption('Delphi SDL Demo',nil);
34    screen:=SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);
35    if (screen=nil) then
36    begin
37    SDL_Quit;
38    exit;
39    end;
40    font:=TTF_OpenFont('msyh.ttf',24);
41    outtxt:='JEDI-SDL 演示程序';
42    draw_unicode_text(outtxt,220,160,$0000FF);
43    draw_unicode_text('SDL中文輸出測試',220,200,$336699);
44    draw_unicode_text('Code By Shaoyun',220,240,$00FF00);
45    SDL_Flip(screen);
46    while SDL_PollEvent(@event)>=0 do
47    begin
48    case event.type_ of
49        SDL_QUITEV: Break;
50        SDL_KEYDOWN:
51        case event.key.keysym.sym of
52            SDLK_ESCAPE: Break;
53        end;
54    end;
55    end;
56    TTF_CloseFont(font);
57    TTF_Quit;
58    SDL_Quit;
59    exit;
60end.


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved