2014-05-20 61 views
0

我想知道是否可以從用戶的系統資源中加載字體,例如Arial - 現在,我必須將.ttf文件複製到我的程序目錄中;否則,字體將不會加載。我試圖在Allegro5的官方文檔中找到允許這種行爲的函數,但沒有成功。我不理解某些東西,還是必須將我的程序與字體文件一起分發? 下面我包括代碼行我使用加載的字體,如果是的任何幫助:在Allegro5中可以使用系統字體嗎?

font=al_load_font("arial.ttf",24,0); 

回答

1

記住,快板是一個跨平臺庫,而且沒有跨平臺的方式來訪問系統字體。

您可以使用的一個選項是#包括allegro窗口(也許它的winalleg.h)標題,然後訪問該功能(Windows API調用)以向程序提供系統字體。但是這會限制您的便攜性

Additionaly,你可以從一個硬編碼路徑存取權限的字體,如c:/windows/fonts/系統字體,但也存在一些問題與:

  1. 你怎麼知道C上的用戶安裝了Windows:/ Windows的?
  2. 如果字體不存在,你會怎麼做?
  3. 即使是正確的方式來訪問系統字體?

TL:DR

快板WA沒有設計成從一個共同的字體回購加載字體。它期望一切都是你告訴它的地方,無處不在。去做一個平臺案例。

3

從Allegro 5.0.8版開始,您可以使用al_create_builtin_font爲您的項目創建一個小的8x8「系統」字體。由於字體的大小有限,此字體通常僅用於調試目的。它是便攜式的,適用於所有平臺。它不能被放大(除非你使用ALLEGRO_TRANSFORM)。

爲了獲得最佳實踐,應始終在項目二進制文件中包含字體。在用戶的計算機中搜索合適的字體時會遇到問題,並不是一個好的決定。就像您可能在位於資源或數據文件夾中包含位圖一樣,在字體或ttf文件夾中包含自定義字體是最符合您的興趣的。

相關問題