Python pygame繪制文字制作滾動(dòng)文字過程解析
這篇文章主要介紹了Python pygame繪制文字制作滾動(dòng)文字過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
字體常用的不是很多,在pygame中大多用于提示文字,或者記錄分?jǐn)?shù)等事件。
字體繪制基本分為以下幾個(gè)步驟:
- 初始化字體模塊
- pygame.init()
- 創(chuàng)建一個(gè)字體對象
- 可以從文件或者系統(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可以是表示源左上角的坐標(biāo)對。Rect也可以作為目標(biāo)傳遞,矩形的topleft角將用作blit的位置。目標(biāo)矩形的大小不會(huì)影響blit。
也可以傳遞可選的區(qū)域矩形。這表示要繪制的源Surface的較小部分。
也就是我們需要繪制的元素,需要繪制的位置輸入進(jìn)去,可以接受矩形區(qū)域的位置參數(shù)。
這里還演示了獲取文本寬高,讓文本在屏幕居中滾動(dòng)的效果。
import pygame import pprint def main(): # 初始化pygame pygame.init() # 初始化字體模塊 pygame.font.init() # 如果字體模塊已初始化,則為true print('是否初始化',pygame.font.get_init()) # 獲取默認(rèn)字體的文件名 print('默認(rèn)字體名',pygame.font.get_default_font()) # 獲取所有可用的字體 pprint.pprint(pygame.font.get_fonts()) # 在系統(tǒng)上找到特定的字體 print('查找字體',pygame.font.match_font('arial')) #從系統(tǒng)字體創(chuàng)建一個(gè)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() # 設(shè)置屏幕 screen = pygame.display.set_mode((500,100)) # 設(shè)置矩形區(qū)域 ztx, zty, ztw, zth = text.get_rect() # 繪制顯示文字的矩形區(qū)域 jx = pygame.Rect(500,50-zth/2,ztw, zth) # 初始位置設(shè)置屏幕右邊,并居住顯示,2/1屏幕的高度 - 2/1字體的高度 向上移動(dòng)是減 # 設(shè)置游戲時(shí)鐘 clock = pygame.time.Clock() while True: # 文字滾動(dòng)的頻率 clock.tick(30) # 重繪屏幕 screen.fill((0,0,0)) # 退出事件 for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() exit(0) # 文字從右向左移動(dòng) jx.x -= 5 # 如果字體全部移動(dòng)出屏幕,則設(shè)置字體X軸位置為510, 500的話會(huì)出現(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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用python搭建服務(wù)器并實(shí)現(xiàn)Android端與之通信的方法
今天小編就為大家分享一篇使用python搭建服務(wù)器并實(shí)現(xiàn)Android端與之通信的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06Linux系統(tǒng)(CentOS)下python2.7.10安裝
這篇文章主要為大家詳細(xì)介紹了Linux系統(tǒng)(CentOS)下python2.7.10安裝圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09進(jìn)行數(shù)據(jù)處理的6個(gè)?Python?代碼塊分享
這篇文章主要介紹了進(jìn)行數(shù)據(jù)處理6個(gè)Python代碼塊的分享,分享內(nèi)容有選取有空值的行、快速替換列值、對列進(jìn)行分區(qū)、將一列分為多列等內(nèi)容,需要的朋友可以參考一下2022-04-04Python實(shí)現(xiàn)繪制Matlab格式的地圖邊框的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)繪制Matlab格式的地圖邊框,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下2022-09-09Python中實(shí)現(xiàn)定時(shí)任務(wù)詳解
這篇文章主要介紹了Python中實(shí)現(xiàn)定時(shí)任務(wù)詳解的相關(guān)資料,需要的朋友可以參考下2023-07-07Pandas如何對帶有Multi-column(多列名稱)的數(shù)據(jù)排序并寫入Excel中
這篇文章主要介紹了Pandas如何對帶有Multi-column(多列名稱)的數(shù)據(jù)排序并寫入Excel中問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02Python手拉手教你爬取貝殼房源數(shù)據(jù)的實(shí)戰(zhàn)教程
隨著人工智能的不斷發(fā)展,機(jī)器學(xué)習(xí)這門技術(shù)也越來越重要,很多人都開啟了學(xué)習(xí)機(jī)器學(xué)習(xí),本文就介紹了機(jī)器學(xué)習(xí)的基礎(chǔ)內(nèi)容,了解python爬蟲,本文給大家分享Python爬取貝殼房源數(shù)據(jù)的實(shí)戰(zhàn)教程,感興趣的朋友一起學(xué)習(xí)吧2021-05-05Python實(shí)現(xiàn)的直接插入排序算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)的直接插入排序算法,結(jié)合實(shí)例形式分析了Python直接插入排序算法的定義與使用相關(guān)操作技巧,代碼備有較為詳盡的注釋便于理解,需要的朋友可以參考下2018-04-04在pycharm中使用git版本管理以及同步github的方法
今天小編就為大家分享一篇在pycharm中使用git版本管理以及同步github的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01