日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python小歡喜(六)動畫 (2) 移動的笑臉

系統 2050 0

在前一篇文章《python小歡喜(六)動畫 (1) pygame的安裝與初步使用》中介紹了如何安裝pygame。接下來咱們用pygame做一些有趣的動畫效果

顯示笑臉圖片

python小歡喜(六)動畫 (2) 移動的笑臉_第1張圖片
python代碼如下:

            
              
                # -*- coding:utf-8 -*- 
              
              
                # showPic.py
              
              
                # 顯示笑臉圖處
              
              
                import
              
               pygame        
              
                # 導入pygame模塊
              
              
pygame
              
                .
              
              init
              
                (
              
              
                )
              
              
screen 
              
                =
              
               pygame
              
                .
              
              display
              
                .
              
              set_mode
              
                (
              
              
                [
              
              
                800
              
              
                ,
              
              
                600
              
              
                ]
              
              
                )
              
              
keep_going 
              
                =
              
              
                True
              
              
pic 
              
                =
              
               pygame
              
                .
              
              image
              
                .
              
              load
              
                (
              
              
                "CrazySmile.bmp"
              
              
                )
              
              
                #加載當前目錄下的圖片文件 CrazySmile.bmp
              
              
                while
              
               keep_going
              
                :
              
              
                # 事件處理循環
              
              
                for
              
               event 
              
                in
              
               pygame
              
                .
              
              event
              
                .
              
              get
              
                (
              
              
                )
              
              
                :
              
              
                if
              
               event
              
                .
              
              
                type
              
              
                ==
              
               pygame
              
                .
              
              QUIT
              
                :
              
               
            keep_going 
              
                =
              
              
                False
              
              
    screen
              
                .
              
              blit
              
                (
              
              pic
              
                ,
              
              
                (
              
              
                100
              
              
                ,
              
              
                100
              
              
                )
              
              
                )
              
              
    pygame
              
                .
              
              display
              
                .
              
              update
              
                (
              
              
                )
              
              
   
pygame
              
                .
              
              quit
              
                (
              
              
                )
              
              
                # 退出
              
            
          

從源碼可知,該程序要能夠正確執行,當前目錄下需要有一個圖片文件 CrazySmile.bmp
在這里插入圖片描述

以上只是顯示了一副靜止的圖片,接下要讓圖片動起來

彈跳的笑臉

實現效果如下:
python小歡喜(六)動畫 (2) 移動的笑臉_第2張圖片

python代碼如下:

            
              
                # -*- coding:utf-8 -*- 
              
              
                # 移動的笑臉
              
              
                import
              
               pygame       
              
                # 導入pygame模塊
              
              
pygame
              
                .
              
              init
              
                (
              
              
                )
              
              
screen 
              
                =
              
               pygame
              
                .
              
              display
              
                .
              
              set_mode
              
                (
              
              
                [
              
              
                600
              
              
                ,
              
              
                600
              
              
                ]
              
              
                )
              
              
keep_going 
              
                =
              
              
                True
              
              
pic 
              
                =
              
               pygame
              
                .
              
              image
              
                .
              
              load
              
                (
              
              
                "CrazySmile.bmp"
              
              
                )
              
              
                #加載當前目錄下的圖片文件 CrazySmile.bmp
              
              
colorkey 
              
                =
              
               pic
              
                .
              
              get_at
              
                (
              
              
                (
              
              
                0
              
              
                ,
              
              
                0
              
              
                )
              
              
                )
              
              
pic
              
                .
              
              set_colorkey
              
                (
              
              colorkey
              
                )
              
              
picx 
              
                =
              
              
                0
              
              
picy 
              
                =
              
              
                0
              
              
BLACK 
              
                =
              
              
                (
              
              
                0
              
              
                ,
              
              
                0
              
              
                ,
              
              
                0
              
              
                )
              
              
timer 
              
                =
              
               pygame
              
                .
              
              time
              
                .
              
              Clock
              
                (
              
              
                )
              
              
speed 
              
                =
              
              
                5
              
              
                while
              
               keep_going
              
                :
              
              
                # 事件處理循環
              
              
                for
              
               event 
              
                in
              
               pygame
              
                .
              
              event
              
                .
              
              get
              
                (
              
              
                )
              
              
                :
              
              
                if
              
               event
              
                .
              
              
                type
              
              
                ==
              
               pygame
              
                .
              
              QUIT
              
                :
              
               
            keep_going 
              
                =
              
              
                False
              
              
    picx 
              
                +=
              
               speed  
              
                # 當speed大于0時,增加圖片的X坐標值,否則減少
              
              
    picy 
              
                +=
              
               speed  
              
                # 當speed大于0時,增加圖片的Y坐標值,否則減少
              
              
                if
              
               picx 
              
                <=
              
              
                0
              
              
                or
              
               picx 
              
                +
              
               pic
              
                .
              
              get_width
              
                (
              
              
                )
              
              
                >=
              
              
                600
              
              
                :
              
              
        speed 
              
                =
              
              
                -
              
              speed 
              
                #當到達窗口邊緣時,速度取反
              
              
    screen
              
                .
              
              fill
              
                (
              
              BLACK
              
                )
              
                  
    screen
              
                .
              
              blit
              
                (
              
              pic
              
                ,
              
              
                (
              
              picx
              
                ,
              
              picy
              
                )
              
              
                )
              
              
    pygame
              
                .
              
              display
              
                .
              
              update
              
                (
              
              
                )
              
              
    timer
              
                .
              
              tick
              
                (
              
              
                60
              
              
                )
              
              
    
pygame
              
                .
              
              quit
              
                (
              
              
                )
              
              
                # 退出
              
            
          

帶尾巴的移動的笑臉

實現效果如下:

python代碼如下:

            
              
                # -*- coding:utf-8 -*- 
              
              
                # 帶尾巴的移動的笑臉
              
              
                import
              
               pygame        
              
                # 導入pygame模塊
              
              
pygame
              
                .
              
              init
              
                (
              
              
                )
              
              
screen 
              
                =
              
               pygame
              
                .
              
              display
              
                .
              
              set_mode
              
                (
              
              
                [
              
              
                800
              
              
                ,
              
              
                600
              
              
                ]
              
              
                )
              
              
keep_going 
              
                =
              
              
                True
              
              
pic 
              
                =
              
               pygame
              
                .
              
              image
              
                .
              
              load
              
                (
              
              
                "CrazySmile.bmp"
              
              
                )
              
              
                #加載當前目錄下的圖片文件 CrazySmile.bmp
              
              
colorkey 
              
                =
              
               pic
              
                .
              
              get_at
              
                (
              
              
                (
              
              
                0
              
              
                ,
              
              
                0
              
              
                )
              
              
                )
              
              
pic
              
                .
              
              set_colorkey
              
                (
              
              colorkey
              
                )
              
              
picx 
              
                =
              
              
                0
              
              
picy 
              
                =
              
              
                0
              
              
BLACK 
              
                =
              
              
                (
              
              
                0
              
              
                ,
              
              
                0
              
              
                ,
              
              
                0
              
              
                )
              
              
timer 
              
                =
              
               pygame
              
                .
              
              time
              
                .
              
              Clock
              
                (
              
              
                )
              
              
speedx 
              
                =
              
              
                5
              
              
speedy 
              
                =
              
              
                5
              
              
                while
              
               keep_going
              
                :
              
              
                # 事件處理循環
              
              
                for
              
               event 
              
                in
              
               pygame
              
                .
              
              event
              
                .
              
              get
              
                (
              
              
                )
              
              
                :
              
              
                if
              
               event
              
                .
              
              
                type
              
              
                ==
              
               pygame
              
                .
              
              QUIT
              
                :
              
               
            keep_going 
              
                =
              
              
                False
              
              
    picx 
              
                +=
              
               speedx 
              
                # 當speedx大于0時,增加圖片的X坐標值,否則減少
              
              
    picy 
              
                +=
              
               speedy 
              
                # 當speedy大于0時,增加圖片的Y坐標值,否則減少
              
              
                if
              
               picx 
              
                <=
              
              
                0
              
              
                or
              
               picx 
              
                +
              
               pic
              
                .
              
              get_width
              
                (
              
              
                )
              
              
                >=
              
              
                800
              
              
                :
              
              
        speedx 
              
                =
              
              
                -
              
              speedx 
              
                #當到達窗口邊緣時,速度取反
              
              
                if
              
               picy 
              
                <=
              
              
                0
              
              
                or
              
               picy 
              
                +
              
               pic
              
                .
              
              get_height
              
                (
              
              
                )
              
              
                >=
              
              
                600
              
              
                :
              
              
        speedy 
              
                =
              
              
                -
              
              speedy 
              
                #當到達窗口邊緣時,速度取反
              
              
                #screen.fill(BLACK) # 不做"擦黑板"的操作,達到累加效果,顯示出尾巴 
              
              
    screen
              
                .
              
              blit
              
                (
              
              pic
              
                ,
              
              
                (
              
              picx
              
                ,
              
               picy
              
                )
              
              
                )
              
              
    pygame
              
                .
              
              display
              
                .
              
              update
              
                (
              
              
                )
              
              
    timer
              
                .
              
              tick
              
                (
              
              
                60
              
              
                )
              
              
    
pygame
              
                .
              
              quit
              
                (
              
              
                )
              
              
                # Exit
              
            
          

以上動畫效果的實現原理,請查看源碼及注釋,應該不難理解。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 政和县| 札达县| 安西县| 罗城| 东阿县| 荃湾区| 黔西县| 恩平市| 化州市| 拜城县| 溧水县| 富蕴县| 平昌县| 玉屏| 隆德县| 东兰县| 乌海市| 宜君县| 神农架林区| 灌阳县| 萍乡市| 萨迦县| 杨浦区| 克山县| 彝良县| 喀喇沁旗| 平乐县| 彭泽县| 濉溪县| 九江县| 运城市| 磐安县| 松滋市| 宁阳县| 太仆寺旗| 屏边| 廉江市| 定襄县| 清远市| 黄浦区| 庄浪县|