pygame用blit()實現(xiàn)動畫效果的示例代碼
pygame的的實現(xiàn)動畫的方法有很多,但是都是圍繞著表面進行的,也就是說實現(xiàn)動畫的方式不同,但是本質(zhì)其實都是對表面的不同處理方式而已。
原理其實很簡單,有點像我們做地鐵的時候隧道里的廣告一樣。我們設(shè)置一個窗口。然后讓窗口在一個畫著很多幀圖像的圖上面移動,當我們透過這個窗口去觀察這幅圖的時候,只要窗口沿著一個方向去運動,那么就會產(chǎn)生動畫效果。
今天我介紹的是通過塊傳輸?shù)姆椒ㄈ崿F(xiàn)。
surface.blit(image,(x,y),rect) 在這里surface.blit()這個方法應(yīng)該大家都很熟悉了,我們就是利用第三個參數(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(),明天我會介紹這個方法.
到此這篇關(guān)于pygame用blit()實現(xiàn)動畫效果的示例代碼的文章就介紹到這了,更多相關(guān)pygame blit()動畫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python調(diào)用系統(tǒng)底層API播放wav文件的方法
這篇文章主要介紹了Python調(diào)用系統(tǒng)底層API播放wav文件的方法,涉及Python使用pywin32調(diào)用系統(tǒng)底層API讀取與播放wav文件的相關(guān)操作技巧,需要的朋友可以參考下2017-08-08神經(jīng)網(wǎng)絡(luò)訓練采用gpu設(shè)置的方式
這篇文章主要介紹了神經(jīng)網(wǎng)絡(luò)訓練采用gpu設(shè)置的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03