<wbr id="juant"></wbr>
  • <wbr id="juant"></wbr>
    更多課程 選擇中心


    Python培訓

    400-111-8989

    Python實現降雪效果

    • 發布:Python培訓
    • 來源:簡說Python
    • 時間:2019-09-26 16:01

    降雪這種天氣大家都見過吧,即使你是一個海南的娃娃想必也在電視里見過吧,其實想在屏幕上看到降雪并不難,Python的一段程序就能實現。

    正式開始

    使用pygame第一步要做的就是初始化

    1import pygame
    
    2import random
    
    3#初始化
    
    4pygame.init()

    加載背景圖同時根據背景圖的大小設置屏幕長寬

    1SIZE = (1000, 500)
    
    2screen = pygame.display.set_mode(SIZE)
    
    3pygame.display.set_caption("下雪了")
    
    4#加載位圖
    
    5background = pygame.image.load('自定義圖片.jpg')

    接下來我們要定義一個雪花列表,且初始化雪花,這里需要使用random隨機數設置xy軸的坐標和速度。

    random.randrange

    random.randrange([start],stop[, step]):從指定范圍內,按指定基數遞增的集合中獲取一個隨機數。

    random.randint(a,b):用于生成一個指定范圍內的整數。其中參數a是下限,參數b是上限,生成的隨機數n:a<=n<=b。

    1# 定義一個雪花列表
    
    2snow = []
    
    3# 初始化雪花
    
    4for i in range(300):
    
    5 x = random.randrange(0, SIZE[0])
    
    6 y = random.randrange(0, SIZE[1])
    
    7 speedx = random.randint(-1, 2)
    
    8 speedy = random.randint(3,8)
    
    9 snow.append([x, y, speedx, speedy])

    接下來要做的就是設置游戲循環,同時還將之前加載的背景圖進行了繪制。

    Surface對象有一個名為blit()的方法,它可以繪制位圖

    screen.blit(space, (0,0))

    第一個參數是加載完成的位圖,第二個參數是繪制的起始坐標。

    1done = False
    
    2while not done:
    
    3 # 消息事件循環,判斷退出
    
    4 for event in pygame.event.get():
    
    5 if event.type == pygame.QUIT:
    
    6 done = True
    
    7 #繪制位圖
    
    8 screen.blit(background, (0,0))

    這一步是最重要的繪制雪花和設置雪花列表的循環。

    繪制雪花使用的是pygame.draw 模塊,此模塊用于在Surface上繪制一些簡單的圖形,比如點、直線、矩形、圓、弧等。我們繪制雪花用到的是:

    pygame.draw.circle

    原型:pygame.draw.circle(Surface, color, pos, radius, width=0): return Rect

    用途:用于繪制圓形。第三個參數pos是圓心的位置坐標,radius指定了圓的半徑。

    width參數表示線條(畫筆)的寬度,如果該值設置為0,則表示填充整個圖形,我們的繪制的雪花就是使用填充白色。顏色參數通常是一個RGB三元組(R, G, B)。

    雪花列表循環主要取決于雪花列表的長度,同樣設置了移動雪花的位置,程序中還做了一個判定雪花從頂端向下移動時如果落出屏幕,將會重設位置。

    1 # 雪花列表循環
    
    2 for i in range(len(snow)):
    
    3 # 繪制雪花,顏色、位置、大小
    
    4 pygame.draw.circle(screen, (255, 255, 255), snow[i][:2], snow[i][3])
    
    5
    
    6 # 移動雪花位置(下一次循環起效)
    
    7 snow[i][0] += snow[i][2]
    
    8 snow[i][1] += snow[i][3]
    
    9
    
    10 # 如果雪花落出屏幕,重設位置
    
    11 if snow[i][1] > SIZE[1]:
    
    12 snow[i][1] = random.randrange(-50, -10)
    
    13 snow[i][0] = random.randrange(0, SIZE[0])

    到這程序基本就寫完了,只需要添加刷新屏幕的時間和游戲退出語句就完事了。

    1 pygame.display.flip()
    
    2 clock.tick(20)
    
    3
    
    4pygame.quit()

    效果圖就不給大家放了,給大家一個想象空間,如果你跟著本文提供編程的思路,具體素材需要自己找,當你完成后就會發現Python實現降雪真的很簡單。

    免責聲明:內容和圖片源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:Python中dir()、help()的使用
    下一篇:Python編程練習題一

    2021年Python面試題及答案匯總詳解

    python數據分析,你需要這些工具

    Python培訓講解二叉樹的三種深度

    Python培訓:如何實現窮舉搜索?

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    天天日天天射天天干天天伊|奇米电影|奇米网_奇米首页|奇米首页 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>