Pygame添加靜態文字詳解

Pygame學習筆記——添加靜態文字

學習資源:https://www.bilibili.com/video/BV1bE411p7Ue?p=4

【零基礎 Python體驗課】第四季 pygame遊戲開發

由於依然還沒有學習動畫,所以還是靜態的,不需要考慮幀的問題。

初始化代碼:(不明白的可以看看上一章)

'''
@Author: Thomas
@Date: 2020-06-14 19:56:36
@LastEditTime: 2020-06-14 20:05:54
@Description: Pygame設置文字
@FilePath: \Coding-Notes\Python-Notes\Pygame\前鋒教育-Bilibili\顯示文字.py
'''

import pygame
pygame.init()
window = pygame.display.set_mode((600, 600))
pygame.display.set_caption("顯示文字")
# 設置背景顏色
window.fill((255, 255, 255))
pygame.display.update() #就連設置顏色都需要更新一次,what?!

flag = True
while flag:
	for event in pygame.event.get():
		if event.type == pygame.QUIT:
			exit()

1文字創建

模塊用pygame.font,這是字體模塊

  • 創建字體對象

    • 系統默認字體:pygame.font.SysFont(),就一種,中文不支持,很難看

    • 自定義字體:pygame.font.Font(字體文件路徑,字號),需要TTF、TTC格式的文件,字號自定義

      Windows下打開資源管理器,找到C:\Windows\Fonts目錄,這裏是系統自帶的字體,複製一個走

    • ft = pygame.font.Font("Font/msyh.ttc", 40)用一個變量存儲,這裏是msyh微軟雅黑字體

  • 創建文字對象

    • 可以寫文字了,render方法
  • render(文字內容, True, 文字顏色, 背景顏色(可以不設))第二個True類似是文字是否平滑之類的,固定就是True了

    • text = ft.render("遊戲你好", True, (123, 123, 123))用一個變量存儲,這裏是text
  • 渲染到窗口

    • 依舊使用blit
    • window.blit(text, (0, 0))
  • 刷新,不刷新不能顯示

    • pygame.display.update()

源代碼:

'''
@Author: Thomas
@Date: 2020-06-14 19:56:36
@LastEditTime: 2020-06-14 20:05:54
@Description: Pygame設置文字
@FilePath: \Coding-Notes\Python-Notes\Pygame\前鋒教育-Bilibili\顯示文字.py
'''

import pygame
pygame.init()
window = pygame.display.set_mode((600, 600))
pygame.display.set_caption("顯示文字")
# 設置背景顏色
window.fill((255, 255, 255))
pygame.display.update() #就連設置顏色都需要更新一次

# ===========顯示文字==========
#1.創建字體對象
#Pygame自帶的模塊font
# pygame.font.SysFont() 系統字體,一般無法支持中文
# Font(字體文件路徑, 字號) 我就問問爲什麼不能直接一個字符串,寫上字體名!

ft = pygame.font.Font("Font/msyh.ttc", 40)

#2.創建文字對象
# render(文字內容, True, 文字顏色, 背景顏色(可以不設)) #是否平滑一定是True
text = ft.render("遊戲你好", True, (123, 123, 123)) #背景顏色不寫

#3.渲染到窗口上
window.blit(text, (0, 0))

#4.刷新窗口
pygame.display.update()

flag = True
while flag:
   for event in pygame.event.get():
      if event.type == pygame.QUIT:
         exit()

在這裏插入圖片描述

背景顏色可以設置,也是RGB

在這裏插入圖片描述

2操作文字

文字我們也需要放在不同位置,於是文字也有形變、移動等方法,和圖片幾乎沒有差別。直接給實例,同樣支持scalerotozoom

'''
@Author: Thomas
@Date: 2020-06-14 19:56:36
@LastEditTime: 2020-06-14 20:05:54
@Description: Pygame設置文字
@FilePath: \Coding-Notes\Python-Notes\Pygame\前鋒教育-Bilibili\顯示文字.py
'''

import pygame
pygame.init()
window = pygame.display.set_mode((600, 600))
pygame.display.set_caption("顯示文字")
# 設置背景顏色
window.fill((255, 255, 255))
pygame.display.update() #就連設置顏色都需要更新一次

# ===========顯示文字==========
#1.創建字體對象
#Pygame自帶的模塊font
# pygame.font.SysFont() 系統字體,一般無法支持中文
# Font(字體文件路徑, 字號) 我就問問爲什麼不能直接一個字符串,寫上字體名!

ft = pygame.font.Font("Font/msyh.ttc", 40)

#2.創建文字對象
# render(文字內容, True, 文字顏色, 背景顏色(可以不設)) #是否平滑一定是True
text = ft.render("遊戲你好", True, (205, 85, 85), (240, 225, 240)) #背景顏色不寫

#3.渲染到窗口上
window.blit(text, (0, 0))

#3.1 獲取大小

w, h = text.get_size()
window.blit(text, (600-w, 600-h))
#3.2 縮放和旋轉
new1 = pygame.transform.scale(text, (200, 50))
window.blit(new1, (0, 60))

new2 = pygame.transform.rotozoom(text, 0, 2) #不旋轉,放大二倍
window.blit(new2, (0, 120))

new3 = pygame.transform.rotozoom(text, 90, 2) #旋轉九十度
window.blit(new3, (0, 250))
#4.刷新窗口
pygame.display.update()
flag = True
while flag:
	for event in pygame.event.get():
		if event.type == pygame.QUIT:
			exit()

在這裏插入圖片描述

3預告

下一節將交講到畫線圖形

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