1. 程式人生 > 程式設計 >Python pygame繪製文字製作滾動文字過程解析

Python pygame繪製文字製作滾動文字過程解析

這篇文章主要介紹了Python pygame繪製文字製作滾動文字過程解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

字型常用的不是很多,在pygame中大多用於提示文字,或者記錄分數等事件。
字型繪製基本分為以下幾個步驟:

  • 初始化字型模組
    • pygame.init()
  • 建立一個字型物件
    • 可以從檔案或者系統內字型選取
      • pygame.font.SysFont('幼圓',50)
  • 繪製文字物件。
    • a.render("測試字型",True,(255,0),(0,0))
  • 螢幕繪製字型
    • screen.blit(text,[jx.x,jx.y])

繪製字型是用的表面中blit函式來繪製圖像:

blit(source,dest,area = None,special_flags = 0) - > Rect

在此Surface上繪製源Surface。可以使用dest引數定位繪圖。Dest可以是表示源左上角的座標對。Rect也可以作為目標傳遞,矩形的topleft角將用作blit的位置。目標矩形的大小不會影響blit。

也可以傳遞可選的區域矩形。這表示要繪製的源Surface的較小部分。

也就是我們需要繪製的元素,需要繪製的位置輸入進去,可以接受矩形區域的位置引數。

這裡還演示了獲取文字寬高,讓文字在螢幕居中滾動的效果。

import pygame
import pprint

def main():
  # 初始化pygame
  pygame.init()
  # 初始化字型模組
  pygame.font.init()
  # 如果字型模組已初始化,則為true
  print('是否初始化',pygame.font.get_init())
  # 獲取預設字型的檔名
  print('預設字型名',pygame.font.get_default_font())
  # 獲取所有可用的字型
  pprint.pprint(pygame.font.get_fonts())
  # 在系統上找到特定的字型
  print('查詢字型',pygame.font.match_font('arial'))
  #從系統字型建立一個Font物件
  # (名稱,大小,粗體=假,斜體=假) - >字型
  a = pygame.font.SysFont('幼圓',50)

  # 從檔案或物件繪製文字
  # pygame.font.Font('檔案或物件',大小)
  
  # 在新Surface上繪製文字
  # 顯示內容、是否消除鋸齒、字型顏色、背景顏色
  text = a.render("gisoracle",0))

  # 取消初始化字型模組
  # pygame.font.quit()
  # 設定螢幕
  screen = pygame.display.set_mode((500,100))
  # 設定矩形區域
  ztx,zty,ztw,zth = text.get_rect()
  # 繪製顯示文字的矩形區域
  jx = pygame.Rect(500,50-zth/2,zth) # 初始位置設定螢幕右邊,並居住顯示,2/1螢幕的高度 - 2/1字型的高度 向上移動是減
  # 設定遊戲時鐘
  clock = pygame.time.Clock()
  while True:
    # 文字滾動的頻率
    clock.tick(30)
    # 重繪螢幕
    screen.fill((0,0))
    # 退出事件
    for event in pygame.event.get():
      if event.type == pygame.QUIT:
        pygame.quit()
        exit(0)
    # 文字從右向左移動
    jx.x -= 5
    # 如果字型全部移動出螢幕,則設定字型X軸位置為510,500的話會出現的比較突然
    if jx.x < 0 - ztw:
      jx.x = 510
    # 螢幕繪製字型,
    screen.blit(text,jx.y])
    # 更新螢幕顯示
    pygame.display.update()

if __name__ == '__main__':
  main()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。