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

pygame實現(xiàn)方塊動畫實例講解

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

導(dǎo)入組件

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

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

繪制窗口

這里定義了一個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("矩形動畫")

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'])
---

讓矩形動起來

從運動來看只有中心向四方移動的四種可能。定義四個方向的常量。
在這里插入圖片描述

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

然后定義矩形的移動速度

# 矩形移動的速度
MOVESPEED = 2 

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

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

根據(jù)矩形的移動方向改變對應(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)觸及到邊緣,沿來的方向?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

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

請?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'

# 矩形移動的速度
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("矩形動畫")

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實現(xiàn)方塊動畫的文章就介紹到這了,更多相關(guān)pygame 方塊動畫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

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

    Python利用 matplotlib 繪制直方圖

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

    Python re模塊介紹

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

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

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

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

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

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

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

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

    在使用pycharm學(xué)習(xí)python的時候,經(jīng)常需要第三方庫,沒有第三方庫程序就會報錯,pycharm也會提醒你要安裝所需要的庫,下面這篇文章主要給大家介紹了關(guān)于Pycharm安裝第三方庫并更換鏡像的詳細(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 是一個現(xiàn)代、快速(高性能)的 Web 框架,用于構(gòu)建基于 Python 的 API,它具有簡單易用的特性,同時也提供了高度自動化的文檔生成功能,本文給大家介紹了在pycharm中調(diào)試fastapi應(yīng)用程序的流程步驟,需要的朋友可以參考下
    2024-12-12

最新評論

枞阳县| 西乡县| 科尔| 北碚区| 集安市| 习水县| 大连市| 武穴市| 贵港市| 石泉县| 板桥市| 晋州市| 莫力| 宿松县| 嘉义市| 闸北区| 肇东市| 溧阳市| 林周县| 道真| 贡嘎县| 五大连池市| 双峰县| 保定市| 罗田县| 休宁县| 海原县| 景德镇市| 孟村| 额尔古纳市| 湟中县| 隆安县| 沙坪坝区| 舒兰市| 罗甸县| 吉水县| 工布江达县| 额敏县| 通州区| 吉首市| 望都县|