pygame提供了字體處理,但是對中文的支持貌似不是很好!(汗……)
pygame對於字體的處理主要是pygame.font.Font()對象
對象中的方法如下
pygame.font.font.render—
在一個新的表面繪製文本
pygame.font.font.size —確定需要渲染文本的空間量
pygame.font.font.set_underline —如果文本呈現的下劃線
pygame.font.font.get_underline —檢查是否帶下劃線的文本將被呈現
pygame.font.font.set_bold —啓用粗體文字假渲染
pygame.font.font.get_bold —檢查文本呈現的是大膽
pygame.font.font.set_italic —使斜體假渲染
pygame.font.font.metrics —獲取在過去的各個字符度量。
pygame.font.font.get_italic —如果支票將rendered italic文本
pygame.font.font.get_linesize —獲得該字體的文本的行間距
pygame.font.font.get_height —得到的字體高度
pygame.font.font.get_ascent —獲得字體的提升
pygame.font.font.get_descent —獲得字體的血統
其中最常用的是pygame.font.font.render()方法。
這個方法一個接收三個參數,1:文本內容,2:(我也不是很懂,通常傳入0或者1)3:顏色的RGB值
例:
#創建字體對象
font=pygame.font.Font(None,56)
#文本與顏色
text=font.render("I love Python",1,(255,0,0))
上面代碼我們實例化一個字體對象,(第一個參數是字體,第二個參數是字體大小)
然後就是繪製文本內容爲”I lvoe Python”,並且設置字體的顏色爲紅色。
對了再說一句,這個font也是一個surface對象!可以使用surface對象的方法。
例如可以使用Surface對象中個get_rect方法設置他的位置(center=(x,y)x,y是座標值)
textpos = text.get_rect(center=(150,150))
最後貼上完整代碼
# -*- conding:utf-8 -*-
import pygame
import sys
pygame.init()
#繪製窗口
screen=pygame.display.set_mode((600,400),0,32)
#繪製背景
background=pygame.Surface(screen.get_size())
#填充顏色
background.fill(color=(255,255,23))
#創建字體對象
font=pygame.font.Font(None,56)
#文本與顏色
text=font.render("I love Python",1,(255,10,10))
#獲取中心的座標
center=(background.get_width()/2,background.get_height()/2)
#獲取設置後新的座標區域
textpos = text.get_rect(center=center)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
#將字體填充到背景
background.blit(text, textpos)
#將背景填充到窗口
screen.blit(background,(0,0))
pygame.display.update()
效果圖
最後要注意一下層級關係,先將文字填充到背景層上,然後再將背景填充到屏幕上。
這個使用層級以及順序關係滴!(ps我習慣使用填充!)