Python pygame繪制文字制作滾動文字過程解析
這篇文章主要介紹了Python pygame繪制文字制作滾動文字過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
字體常用的不是很多,在pygame中大多用于提示文字,或者記錄分數(shù)等事件。
字體繪制基本分為以下幾個步驟:
- 初始化字體模塊
- pygame.init()
- 創(chuàng)建一個字體對象
- 可以從文件或者系統(tǒng)內(nèi)字體選取
- pygame.font.SysFont('幼圓',50)
- 可以從文件或者系統(tǒng)內(nèi)字體選取
- 繪制文本對象。
- a.render("測試字體",True,(255,0,0),(0,0,0))
- 屏幕繪制字體
- screen.blit(text,[jx.x,jx.y])
繪制字體是用的表面中blit函數(shù)來繪制圖像:
blit(source,dest,area = None,special_flags = 0) - > Rect
在此Surface上繪制源Surface??梢允褂胐est參數(shù)定位繪圖。Dest可以是表示源左上角的坐標對。Rect也可以作為目標傳遞,矩形的topleft角將用作blit的位置。目標矩形的大小不會影響blit。
也可以傳遞可選的區(qū)域矩形。這表示要繪制的源Surface的較小部分。
也就是我們需要繪制的元素,需要繪制的位置輸入進去,可以接受矩形區(qū)域的位置參數(shù)。
這里還演示了獲取文本寬高,讓文本在屏幕居中滾動的效果。
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())
# 在系統(tǒng)上找到特定的字體
print('查找字體',pygame.font.match_font('arial'))
#從系統(tǒng)字體創(chuàng)建一個Font對象
# (名稱,大小,粗體=假,斜體=假) - >字體
a = pygame.font.SysFont('幼圓',50)
# 從文件或?qū)ο罄L制文本
# pygame.font.Font('文件或?qū)ο?,大小)
# 在新Surface上繪制文本
# 顯示內(nèi)容、是否消除鋸齒、字體顏色、背景顏色
text = a.render("gisoracle",True,(255,0,0),(0,0,0))
# 取消初始化字體模塊
# pygame.font.quit()
# 設置屏幕
screen = pygame.display.set_mode((500,100))
# 設置矩形區(qū)域
ztx, zty, ztw, zth = text.get_rect()
# 繪制顯示文字的矩形區(qū)域
jx = pygame.Rect(500,50-zth/2,ztw, zth) # 初始位置設置屏幕右邊,并居住顯示,2/1屏幕的高度 - 2/1字體的高度 向上移動是減
# 設置游戲時鐘
clock = pygame.time.Clock()
while True:
# 文字滾動的頻率
clock.tick(30)
# 重繪屏幕
screen.fill((0,0,0))
# 退出事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit(0)
# 文字從右向左移動
jx.x -= 5
# 如果字體全部移動出屏幕,則設置字體X軸位置為510, 500的話會出現(xiàn)的比較突然
if jx.x < 0 - ztw:
jx.x = 510
# 屏幕繪制字體,
screen.blit(text,[jx.x,jx.y])
# 更新屏幕顯示
pygame.display.update()
if __name__ == '__main__':
main()
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python爬蟲實戰(zhàn)之網(wǎng)易云音樂加密解析附源碼
讀萬卷書不如行萬里路,學的扎不扎實要通過實戰(zhàn)才能看出來,本篇文章手把手帶你解析網(wǎng)易云音樂數(shù)據(jù),大家可以在實戰(zhàn)過程中更有效的掌握python2021-10-10
Python實戰(zhàn)使用XPath采集數(shù)據(jù)示例解析
這篇文章主要為大家介紹了Python實戰(zhàn)之使用XPath采集數(shù)據(jù)實現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>2023-04-04
python數(shù)據(jù)處理之Pandas類型轉(zhuǎn)換的實現(xiàn)
本文主要介紹了python數(shù)據(jù)處理之Pandas類型轉(zhuǎn)換的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04
Python日期時間模塊datetime詳解與Python 日期時間的比較,計算實例代碼
python中的datetime模塊提供了操作日期和時間功能,本文為大家講解了datetime模塊的使用方法及與其相關(guān)的日期比較,計算實例2018-09-09
python使用pandas實現(xiàn)Excel轉(zhuǎn)換為CSV文件
在數(shù)據(jù)處理和分析中,我們經(jīng)常需要將 Excel 文件轉(zhuǎn)換為 CSV 格式,這篇文章我們主要來介紹一下python如何使用pandas實現(xiàn)Excel轉(zhuǎn)換為CSV文件,希望對大家有所幫助2024-10-10
python實現(xiàn)zencart產(chǎn)品數(shù)據(jù)導入到magento(python導入數(shù)據(jù))
這篇文章主要介紹了python實現(xiàn)zencart產(chǎn)品數(shù)據(jù)導入到magento(python導入數(shù)據(jù)),需要的朋友可以參考下2014-04-04

