使用C++及SDL_ttf在工作視窗(window)的螢幕畫面上顯示一段含有大小寫英文字母, 繁簡漢字, 其他文字, 數字及符號所組成的字串, 如:
Hello, 我是台灣人永吉(Цолмoн), 爱与和平!! E-mail: poettw2010@gmail.com
2. 做法:
2.1. 確認工作環境:
2.1.1. 作業系統: Windows XP/Vista/Win7
2.1.2. C++編譯工具: Code::Blocks 12.11
將其開檔編碼設為UTF-8(點擊功能列的Settings>Editor...>Other settings>"Encoding"Use encoding when opening files:);
另編輯器之其他選項框內須加入下行橘色文字:
-fexec-charset=BIG-5
(點擊功能列的Settings>Compiler...>
最好將其相關的動態連結資料庫(DLL, Dynamic Link Library)與本程式置於同一資料夾中.
2.1.4. 文件格式: 檔案(F)> New> File...> 選擇 "C/C++ source"> 選擇 "C++"
2.2. C++語法及註解:
P.S. 在程式的第82行(MyFont = TTF_OpenFont( "WCL-06.ttf", 30 );)與第83行(MyFont = TTF_OpenFont( "C:/Windows/Fonts/kaiu.ttf", 25 );)可二擇一選用, 若使用前者, 則須將WCL-06.ttf與本程式置於同一資料夾內; 若使用後者, 則須確認載入檔案的路徑是否正確及資料夾Fonts內存有kaiu.ttf, 否則就會出錯.
2.3. 結果:
若使用WCL-06.ttf者, 其畫面如下:
字串中的簡體字"爱"不見了.
若使用kaiu.ttf者, 其畫面如下:
字串中的西里爾字母(кирйллица, Cyrillic alphabet)脫落不全了.
2.4. 資源下載:
本C++語法的自解壓縮檔下載位置: SDL_ttf- string and a variety of text.exe(共6.1MB)
內含TrueTypeFonts-Han_simple.cpp與WCL-06.ttf兩個檔案, 於運用前請先考量著作者的權利宣告與使用範圍.
2.5. 改良延伸:
有興趣者可自行增加字串長度段落與畫面尺寸的自動調整功能; (請參: < C++>SDL_ttf, 字串跳行(SDL_ttf, a string to skip a line))
或是改寫成更方便使用的函式或標頭檔;
或是針對不同的文字可自由選擇相應的ttf字體檔;
或是增加程式執行時可從鍵盤輸入字串的功能...等.
3. 感謝:
感謝網路上每位資訊提供者, 因為有您們無私的貢獻, 讓大家才有更美好的表現.
因為我是初學者, 如未能提供更詳實完整的資訊與解答時, 請見諒.
相關文章:
1. < C++>SDL_ttf, 字串跳行(SDL_ttf, a string to skip a line)
2. < C++>SDL_ttf, 精準地字串跳行(SDL_ttf, a string to skip a line accurately)
沒有留言:
張貼留言