python3 pygame學習(4):文字的使用

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我習慣使用填充!)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章