最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pygame實(shí)現(xiàn)方塊動(dòng)畫(huà)實(shí)例講解

 更新時(shí)間:2021年12月03日 08:35:22   作者:我的天才女友  
在本篇文章里小編給大家整理的是一篇關(guān)于pygame實(shí)現(xiàn)方塊動(dòng)畫(huà)實(shí)例講解內(nèi)容,以后需要的朋友們可以學(xué)習(xí)參考下。

導(dǎo)入組件

首先導(dǎo)入需要的組件,pygame游戲組件,time是時(shí)間組件

import pygame, time, sys
from pygame.locals import *

繪制窗口

這里定義了一個(gè)480*600的屏幕,設(shè)置了窗口標(biāo)題,并設(shè)置了屏幕的填充顏色為白色

# 屏幕的寬高
WIDTH = 480
HEIGHT = 600

# 顏色的常量
WHITE = (255, 255, 255)

surface = pygame.display.set_mode((WIDTH, HEIGHT), 0, 30)
pygame.display.set_caption("矩形動(dòng)畫(huà)")

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
    surface.fill(WHITE)


    pygame.display.update()

在這里插入圖片描述

繪制矩形

RED = (255, 0, 0)

# 定義矩形字典變量
rect = {'rect': pygame.Rect(200, 200, 60, 46), 'color': RED}

---
    surface.fill(WHITE)

    pygame.draw.rect(surface,  rect['color'], rect['rect'])
---

讓矩形動(dòng)起來(lái)

從運(yùn)動(dòng)來(lái)看只有中心向四方移動(dòng)的四種可能。定義四個(gè)方向的常量。
在這里插入圖片描述

# 方向常量
UPLEFT = 'upleft'
UPRIGHT = 'upright'
DOWNLEFT = 'downleft'
DOWNRIGHT = 'downright'

然后定義矩形的移動(dòng)速度

# 矩形移動(dòng)的速度
MOVESPEED = 2 

給矩形設(shè)置一個(gè)初始的移動(dòng)方向

# 定義矩形字典變量
rect = {'rect': pygame.Rect(200, 200, 60, 46), 'color': RED, 'direction': UPLEFT}

根據(jù)矩形的移動(dòng)方向改變對(duì)應(yīng)的起始位置。根據(jù)矩形不同的位置改變矩形的起始位置。

    # 如果是上左,則x y 都減少
    if rect['direction'] == UPLEFT:
        rect['rect'].left -= MOVESPEED
        rect['rect'].top -= MOVESPEED

    # 如果是上右,則x 增加 y 減少
    if rect['direction'] == UPRIGHT:
        rect['rect'].left += MOVESPEED
        rect['rect'].top -= MOVESPEED

    # 如果是下左,則x 減少 y 增加
    if rect['direction'] == DOWNLEFT:
        rect['rect'].left -= MOVESPEED
        rect['rect'].top += MOVESPEED

    # 如果是下右,則x y 都增加
    if rect['direction'] == DOWNRIGHT:
        rect['rect'].left += MOVESPEED
        rect['rect'].top += MOVESPEED

不斷的改變矩形的位置,要注意防止移出窗口,當(dāng)觸及到邊緣,沿來(lái)的方向?qū)⒕匦胃淖兎较蚣纯伞?/p>

    # 如果上溢出窗口
    if rect['rect'].top <= 0:
        if rect['direction'] == UPLEFT:
            rect['direction'] = DOWNLEFT
        if rect['direction'] == UPRIGHT:
            rect['direction'] = DOWNRIGHT

    # 如果下溢出窗口
    if rect['rect'].bottom >= HEIGHT:
        if rect['direction'] == DOWNRIGHT:
            rect['direction'] = UPRIGHT
        if rect['direction'] == DOWNLEFT:
            rect['direction'] = UPLEFT

    # 如果右溢出窗口
    if rect['rect'].right >= WIDTH:
        if rect['direction'] == DOWNRIGHT:
            rect['direction'] = DOWNLEFT
        if rect['direction'] == UPRIGHT:
            rect['direction'] = UPLEFT

    # 如果右溢出窗口
    if rect['rect'].left <= 0:
        if rect['direction'] == DOWNLEFT:
            rect['direction'] = DOWNRIGHT
        if rect['direction'] == UPLEFT:
            rect['direction'] = UPRIGHT

這樣就實(shí)現(xiàn)了功能。每次循環(huán)讓時(shí)間暫停一會(huì)即可。

請(qǐng)?zhí)砑訄D片描述

這里附上所有代碼

import pygame, time, sys
from pygame.locals import *

# 屏幕的寬高
WIDTH = 480
HEIGHT = 600

# 顏色的常量
WHITE = (255, 255, 255)
RED = (255, 0, 0)

# 方向常量
UPLEFT = 'upleft'
UPRIGHT = 'upright'
DOWNLEFT = 'downleft'
DOWNRIGHT = 'downright'

# 矩形移動(dòng)的速度
MOVESPEED = 2

# 定義矩形字典變量
rect = {'rect': pygame.Rect(200, 200, 60, 46), 'color': RED, 'direction': UPLEFT}

surface = pygame.display.set_mode((WIDTH, HEIGHT), 0, 30)
pygame.display.set_caption("矩形動(dòng)畫(huà)")

while True:
    print(rect)
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
    surface.fill(WHITE)

    # 如果是上左,則x y 都減少
    if rect['direction'] == UPLEFT:
        rect['rect'].left -= MOVESPEED
        rect['rect'].top -= MOVESPEED

    # 如果是上右,則x 增加 y 減少
    if rect['direction'] == UPRIGHT:
        rect['rect'].left += MOVESPEED
        rect['rect'].top -= MOVESPEED

    # 如果是下左,則x 減少 y 增加
    if rect['direction'] == DOWNLEFT:
        rect['rect'].left -= MOVESPEED
        rect['rect'].top += MOVESPEED

    # 如果是下右,則x y 都增加
    if rect['direction'] == DOWNRIGHT:
        rect['rect'].left += MOVESPEED
        rect['rect'].top += MOVESPEED

    # 如果上溢出窗口
    if rect['rect'].top <= 0:
        if rect['direction'] == UPLEFT:
            rect['direction'] = DOWNLEFT
        if rect['direction'] == UPRIGHT:
            rect['direction'] = DOWNRIGHT

    # 如果下溢出窗口
    if rect['rect'].bottom >= HEIGHT:
        if rect['direction'] == DOWNRIGHT:
            rect['direction'] = UPRIGHT
        if rect['direction'] == DOWNLEFT:
            rect['direction'] = UPLEFT

    # 如果右溢出窗口
    if rect['rect'].right >= WIDTH:
        if rect['direction'] == DOWNRIGHT:
            rect['direction'] = DOWNLEFT
        if rect['direction'] == UPRIGHT:
            rect['direction'] = UPLEFT

    # 如果右溢出窗口
    if rect['rect'].left <= 0:
        if rect['direction'] == DOWNLEFT:
            rect['direction'] = DOWNRIGHT
        if rect['direction'] == UPLEFT:
            rect['direction'] = UPRIGHT

    pygame.draw.rect(surface,  rect['color'], rect['rect'])

    pygame.display.update()
    time.sleep(0.02)

到此這篇關(guān)于pygame實(shí)現(xiàn)方塊動(dòng)畫(huà)的文章就介紹到這了,更多相關(guān)pygame 方塊動(dòng)畫(huà)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python xlsxwriter創(chuàng)建excel圖表的方法

    python xlsxwriter創(chuàng)建excel圖表的方法

    這篇文章主要為大家詳細(xì)介紹了python xlsxwriter創(chuàng)建excel圖表的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Python更新所有安裝的包的實(shí)現(xiàn)方式

    Python更新所有安裝的包的實(shí)現(xiàn)方式

    這篇文章主要介紹了Python更新所有安裝的包的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Python利用 matplotlib 繪制直方圖

    Python利用 matplotlib 繪制直方圖

    這篇文章主要介紹了Python利用 matplotlib 模塊繪制直方圖相關(guān)屬性和方法,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2021-12-12
  • Python re模塊介紹

    Python re模塊介紹

    這篇文章主要介紹了Python re模塊介紹,需要的朋友可以參考下
    2014-11-11
  • python連接mysql數(shù)據(jù)庫(kù)并讀取數(shù)據(jù)的實(shí)現(xiàn)

    python連接mysql數(shù)據(jù)庫(kù)并讀取數(shù)據(jù)的實(shí)現(xiàn)

    這篇文章主要介紹了python連接mysql數(shù)據(jù)庫(kù)并讀取數(shù)據(jù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Python?中enum的使用方法總結(jié)

    Python?中enum的使用方法總結(jié)

    這篇文章主要介紹了Python?中enum的使用方法總結(jié),枚舉在許多編程語(yǔ)言中常被表示為一種基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)使用,下文更多詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-03-03
  • jupyter notebook保存文件默認(rèn)路徑更改方法匯總(親測(cè)可以)

    jupyter notebook保存文件默認(rèn)路徑更改方法匯總(親測(cè)可以)

    安裝Anaconda后,新建文件的默認(rèn)存儲(chǔ)路徑一般在C系統(tǒng)盤(pán),那么路徑是什么呢?如何更改jupyter notebook保存文件默認(rèn)路徑呢?今天小編就這一問(wèn)題通過(guò)兩種方法給大家講解,需要的朋友跟隨小編一起看看吧
    2021-06-06
  • Pycharm安裝第三方庫(kù)并更換鏡像的詳細(xì)教程

    Pycharm安裝第三方庫(kù)并更換鏡像的詳細(xì)教程

    在使用pycharm學(xué)習(xí)python的時(shí)候,經(jīng)常需要第三方庫(kù),沒(méi)有第三方庫(kù)程序就會(huì)報(bào)錯(cuò),pycharm也會(huì)提醒你要安裝所需要的庫(kù),下面這篇文章主要給大家介紹了關(guān)于Pycharm安裝第三方庫(kù)并更換鏡像的詳細(xì)教程,需要的朋友可以參考下
    2023-05-05
  • Django發(fā)送html郵件的方法

    Django發(fā)送html郵件的方法

    這篇文章主要介紹了Django發(fā)送html郵件的方法,涉及Django框架操作郵件的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • 在pycharm中調(diào)試fastapi應(yīng)用程序的流程步驟

    在pycharm中調(diào)試fastapi應(yīng)用程序的流程步驟

    ? FastAPI 是一個(gè)現(xiàn)代、快速(高性能)的 Web 框架,用于構(gòu)建基于 Python 的 API,它具有簡(jiǎn)單易用的特性,同時(shí)也提供了高度自動(dòng)化的文檔生成功能,本文給大家介紹了在pycharm中調(diào)試fastapi應(yīng)用程序的流程步驟,需要的朋友可以參考下
    2024-12-12

最新評(píng)論

柳林县| 青冈县| 廊坊市| 梅河口市| 雷波县| 乐亭县| 襄垣县| 长岛县| 宜都市| 和平县| 山丹县| 平塘县| 安乡县| 开平市| 兴安盟| 合水县| 日土县| 金寨县| 武宁县| 基隆市| 普兰县| 潮安县| 莱芜市| 神农架林区| 延寿县| 宁津县| 保康县| 安陆市| 永泰县| 广安市| 什邡市| 和顺县| 东山县| 融水| 海伦市| 太谷县| 体育| 凭祥市| 漠河县| 永州市| 怀化市|