Contents

如何通過 Python 的 Arcade 庫使用自定義字體和文本效果

Python 的 Arcade 是一個功能強大的庫,可以輕鬆創建 2D 遊戲。增強遊戲視覺吸引力的一種方法是使用自定義字體和文本效果。自定義字體可以為您的遊戲注入個性,而文本效果可以吸引人們對重要遊戲信息的注意。

在視頻遊戲中加入自定義排版可以通過賦予文本組件獨特的身份來增強其整體美感。選擇與遊戲的主題和情感基調相協調的字體可以為玩家帶來更加迷人和身臨其境的環境。

創建一個簡單的 2D 遊戲

要開始探索 Unity 中個性化字體和圖形文本樣式的使用,請從開發包含玩家導航的基本 2D 遊戲開始。通過實施該初始階段,人們可以建立一個基礎,在此基礎上隨後將書面內容和視覺裝飾集成到遊戲環境的上下文中。

本出版物中使用的源代碼可以通過其專用的 GitHub 存儲庫訪問,並且可以免費公開訪問,前提是您遵守 MIT 許可證的條款。

為了在本教程的上下文中演示如何在 Pygame 中創建基本遊戲,我們將創建一個名為“MyGame”的新類,該類派生自“arcade.Window”類。在此類的構造函數(也稱為“__init__”)中,我們將通過向其父構造函數提供屏幕的寬度、高度和標題來初始化遊戲窗口。此外,我們將利用 arcade.set_background_color() 方法來設置遊戲窗口的背景色調。

通過使用 self.player_x 和 self.player_y 定義玩家的 x 和 y 坐標,在構造函數中啟動玩家的起始位置。 on\_draw() 函數負責通過屏幕直觀地顯示玩家角色。通過設置這些初始步驟,我們可以在它們的基礎上合併其他功能,例如文本和視覺效果。

/bc/images/simple-game-in-arcade-1.jpg

添加文本

納入書面內容是視頻遊戲的一個重要方面,它可以通過各種方式呈現信息,例如顯示分數、提供說明、推進敘述和標記用戶界面,從而與玩家群進行交流。

在 MyGame 類的 on_draw() 方法中,利用 arcade.draw_text() 函數在屏幕上顯示歡迎消息。此函數需要各種參數,例如文本、其在 x 軸和 y 軸坐標方面的位置、顏色和字體大小。

 def on_draw(self):
    arcade.start_render()
    arcade.draw_circle_filled(self.player_x, self.player_y, 30, BLUE)
    
    # Display a welcome message
    arcade.draw_text("Welcome to My Game!", 200, 300, BLACK, 24)

此功能可以將書面內容順利集成到遊戲環境中,為複雜的視覺和敘事元素的展開舖平道路。

/bc/images/simple-text-in-arcade.jpg

添加自定義字體

使用個性化字體可以顯著增強視頻遊戲的視覺吸引力和獨特性,其與更傳統的選項區分開來的能力就證明了這一點。幸運的是,Kivy 通過 Arcade 庫的實現提供了一個可訪問的解決方案,這有助於使用用戶友好的 arcade.load\_font() 函數集成獨特的排版。通過利用此功能,設計人員可以輕鬆合併常見的.ttf 格式的自定義字體文件,以便無縫包含在其交互式應用程序中。

要將專有字體合併到您的遊戲中,請確保項目的根文件夾中存在經過許可的字體文件。在 MyGame 類的初始化函數中,使用 arcade.load\_font() 方法導入個性化排版並將其存儲為實例變量,例如 self.custom\_font。

您可以將這種個性化字體與 arcade.draw\_text() 函數結合使用,以明確無誤的視覺外觀呈現文本。

 def on_draw(self):
    arcade.start_render()
    arcade.draw_circle_filled(self.player_x, self.player_y, 30, BLUE)
    
    # Load the custom font in the __init__ method of MyGame class
    self.custom_font = arcade.load_font("custom_font.ttf")
    text = "Custom Font!"

    # Inside the on_draw method, draw text using the custom font
    arcade.draw_text(text, 250, 250, BLACK, font_name=self.custom_font) 

這是輸出:

/bc/images/custom-text-in-arcade.jpg

添加文字效果

通過結合視覺上迷人的文本效果,設計師可以為他們的遊戲注入更多的興奮和陰謀。例如,考慮使用脈動動畫,通過其動態特性吸引觀眾的注意力。這可以通過操縱字體大小以產生運動的錯覺來相當簡單地實現。

為了在“MyGame”類中實現所需的視覺效果,我們將添加一個名為“text_effect”的附加變量。所述變量將通過影響文本字體大小的縮放來調節脈動動畫。

通過迭代修改和封裝 on_draw() 方法中的 text_effect 變量,我們可以通過隨時間調節字體大小來產生振蕩的視覺效果,從而產生讓人想起脈衝的有節奏的動畫。

 self.text_effect = 0

text = "Pulsating Text"

# Inside the on_draw method, implement the pulsating text effect
text_size = 24 \+ self.text_effect
arcade.draw_text(text, 300, 200, BLACK, text_size, self.custom_font)
self.text_effect = (self.text_effect \+ 1) % 10 

包括附加功能

除了使用個性化字體之外,還可以使用一系列補充功能來增強您的數字體驗。

動畫

將精靈與動畫序列相結合可以通過賦予動感和吸引力來增強遊戲元素的美感。一個典型的例子是為頭像添加運動動畫或在樹葉和植物中引入輕微的振盪運動。

分數顯示

考慮利用獨特的字體樣式和視覺裝飾以迷人的方式展示玩家的成就和分數。在樂譜更新期間採用引人注目的動畫,以增強演示文稿的整體吸引力。

對話框

考慮利用文本效果等視覺元素,通過視覺上引人入勝的對話框來增強遊戲對話的美感,同時採用獨特的字體樣式和特殊效果來區分各種角色。

自定義字體和文本效果的最佳實踐

為了保證完美且美觀的遊戲體驗,必須遵守某些最佳方法或“最佳實踐”。

使用清晰的字體

在視頻遊戲中加入自定義字體時,必須在藝術風格和清晰內容之間取得平衡。儘管視覺上吸引人的字體可以增強遊戲的整體美感,但其難以辨認的字體可能會降低玩家的體驗並降低他們的參與程度。

選擇與遊戲的總體主題相協調的字體,同時保持文本的易讀性和可理解性。

有一個一致的主題

確保所有排版決策的一致性,以便在整個視頻遊戲體驗中建立統一的美感。選擇與遊戲的總體主題和氛圍相符的字體非常重要。

保持排版的一致性可以創造一個有凝聚力的視覺形象,減少任何可能阻礙遊戲過程中沉浸感的視覺不和諧元素的可能性。

考慮字體大小

合併自定義字體時,必須考慮與不同分辨率和設備相關的字體大小縮放。在開發人員的顯示器上看起來完全可讀的字體在其他屏幕上呈現時可能會顯得過於微小或過大。

通過在各種設備(包括具有不同屏幕尺寸和分辨率的設備)上測試遊戲,確保可讀性和視覺吸引力。

確保良好的對比度

視頻遊戲中使用的字體必須與周圍的視覺元素充分區分,從而確保在各種照明條件和復雜背景下的最佳可讀性。應特別注意屏幕光線昏暗或具有大量相互競爭的視覺效果的情況。

選擇在背景下容易辨別的色調,並堅持一致的調色板,以增強視覺和諧的呈現。

適度使用文本效果

事實上,在視頻遊戲中加入文本效果時必須保持克制。過度依賴此類裝飾可能會導致視覺上混亂的環境,從而影響關鍵細節並擾亂玩家的體驗。

有選擇地使用文字修飾,將其保留用於強調重要的溝通、成就或值得注意的遊戲事件,以確保它們保持其效力。

保持良好表現

優化遊戲中的文本元素對於保持視覺吸引力和性能之間的平衡至關重要。實現高分辨率字體或複雜的動畫可能會對遊戲的整體幀速率產生不利影響,從而導致用戶體驗不佳。為了確保遊戲過程不間斷,必須在這兩個因素之間達到和諧的平衡。

通過自定義字體和文本效果讓您的遊戲更具吸引力

將個性化字體和圖形華麗融入街機體驗中超越了單純的審美吸引力;它們使遊戲體驗具有更高水平的交互性和深度。通過採用獨特的排版,您可以傳達遊戲的本質和氛圍,而利用引人注目的文字裝飾可以引導玩家的注意力並提供視覺提示。

精心整合這些元素可以帶來充滿活力、引人入勝的遊戲體驗,充分吸引玩家。