pygame用blit()實現(xiàn)動畫效果的示例代碼
pygame的的實現(xiàn)動畫的方法有很多,但是都是圍繞著表面進行的,也就是說實現(xiàn)動畫的方式不同,但是本質(zhì)其實都是對表面的不同處理方式而已。
原理其實很簡單,有點像我們做地鐵的時候隧道里的廣告一樣。我們設置一個窗口。然后讓窗口在一個畫著很多幀圖像的圖上面移動,當我們透過這個窗口去觀察這幅圖的時候,只要窗口沿著一個方向去運動,那么就會產(chǎn)生動畫效果。
今天我介紹的是通過塊傳輸?shù)姆椒ㄈ崿F(xiàn)。
surface.blit(image,(x,y),rect) 在這里surface.blit()這個方法應該大家都很熟悉了,我們就是利用第三個參數(shù),也就是繪制區(qū)域的變化實現(xiàn)的動畫.我們將圖像的一部分繪制出來。如果加上一個簡單的循環(huán),讓繪制區(qū)域的位置發(fā)生變化。那么就可以實現(xiàn)動畫效果啦。
這個方法實現(xiàn)的精靈動畫很簡單.
完整代碼如下:
import pygame,sys
screen = pygame.display.set_mode((600,800))
pygame.display.set_caption('動畫測試')
image = pygame.image.load('boss.png')
rect = image.get_rect()
rect2 = pygame.Rect(0,0,rect.width // 4,rect.height)
tick = pygame.time.Clock()
while:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
for n in range(4):
tick.tick(4)
rect2.x + = n * rect2.width
if rect2.x> 1000:
rect2.x = 0
screen.fill((255,255,255))
screen.blit(image,(0,0),rect2)#這里給了3個實參,分別是圖像,繪制的位置,繪制的截面框
pygame.display.flip()

其實還有一種方式實現(xiàn)動畫,就是surface.subsurface(),明天我會介紹這個方法.
到此這篇關于pygame用blit()實現(xiàn)動畫效果的示例代碼的文章就介紹到這了,更多相關pygame blit()動畫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python編程入門之Hello World的三種實現(xiàn)方式
這篇文章主要介紹了Python編程入門之Hello World的三種實現(xiàn)方式,實例分析了print輸出函數(shù)的使用及控制臺輸出的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11
Pandas DataFrame 篩選數(shù)據(jù)幾種方法實現(xiàn)
本文介紹了四種在DataFrame中篩選數(shù)據(jù)的方法:根據(jù)字段、標簽、位置、布爾索引和通過query進行篩選,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-12-12
python自動化測試之DDT數(shù)據(jù)驅(qū)動的實現(xiàn)代碼
這篇文章主要介紹了python自動化測試之DDT數(shù)據(jù)驅(qū)動的實現(xiàn)代碼,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07
Python configparser模塊配置文件解析與應用探究
在Python中,configparser模塊是用于處理配置文件的重要工具,本文將全面探討configparser模塊的使用方法,包括讀取、修改、寫入配置文件,以及如何在實際項目中應用該模塊,結(jié)合豐富的示例代碼,將深入剖析該模塊的功能和靈活性2024-01-01
Django模板之基本的 for 循環(huán) 和 List內(nèi)容的顯示方式
這篇文章主要介紹了Django模板之基本的 for 循環(huán) 和 List內(nèi)容的顯示方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03

