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

python pygame入門教程

 更新時(shí)間:2021年06月01日 10:11:38   作者:安也oi  
pygame是python的游戲編程模塊,今天我們就來一起簡單的學(xué)習(xí)如何使用該模塊

一、安裝

在 cmd 命令中輸入: pip install pygame

即可安裝成功了

二、第一個(gè)代碼實(shí)例

代碼快里面有注釋,想必大家都可以看懂的。

import pygame
import sys
import pygame.locals


pygame.init()
# 初始化

screen = pygame.display.set_mode((500, 600))
# 設(shè)置屏幕的大小

pygame.display.set_caption("First Demo")
# 設(shè)置屏幕的名稱

Seashell = 255, 245, 238
# 設(shè)置 RGB 顏色

NavyBlue = 0, 0, 128
# 設(shè)置 RGB 顏色

while True:
    for event in pygame.event.get():
        if event.type == pygame.locals.QUIT or event.type == pygame.locals.KEYDOWN:
            # 如果點(diǎn)擊關(guān)閉按鈕,或者按下任意鍵,那么退出程序
            sys.exit()
        else:
            pass
    screen.fill(Seashell)
    position = (250, 300)
    pygame.draw.circle(screen, color=NavyBlue, center=position, radius=100,  width=50)
    pygame.display.update()


運(yùn)行結(jié)果

這個(gè)實(shí)例只需要強(qiáng)調(diào)一下的是:

1、QUIT表示按下關(guān)閉的按鈕,KEYDOWN是按下任意一個(gè)按鍵,這兩個(gè)都是pygame內(nèi)部自己定義好的常量。

2、顏色可以用RGB進(jìn)行表示

三、繪制一個(gè)矩形框

import pygame
import pygame.locals
import sys

pygame.init()
screen = pygame.display.set_mode((600, 500))
pygame.display.set_caption("Drawing Rectangles")
# 設(shè)置名稱
Blue = 0, 0, 255
Purple = 160, 32, 240
while True:
    for event in pygame.event.get():
        if event.type == pygame.locals.QUIT or event.type == pygame.locals.KEYDOWN:
            # 還是如果說點(diǎn)擊了關(guān)閉的按鍵,或者是按下了任意鍵,那么就可以關(guān)閉程序了
            sys.exit()
    pos = (300, 250, 100, 100)
    # 這里的 pos 不僅設(shè)置了位置,而且設(shè)置了長度以及寬度
    screen.fill(Purple)
    pygame.draw.rect(screen, Blue, pos, width=10)
    # width 是線條的寬度,screen 表示指定使用哪一個(gè)屏幕進(jìn)行顯示
    pygame.display.update()


代碼運(yùn)行的結(jié)果;

四、繪制矩形框的進(jìn)階版本

import pygame
import pygame.locals
import sys
import time


pygame.init()
screen = pygame.display.set_mode((600, 500))
pygame.display.set_caption("Drawing Moving Rectangle")

color1 = 139, 0, 139
color2 = 104, 131, 139

px = 200
py = 300
# 初始化的位置應(yīng)該放在外面,否則會(huì)一直在一個(gè)地方繪制圖形了

vx = 10
vy = 20
# 初始化速度也應(yīng)該放在外面,否則會(huì)一直以恒定的速度運(yùn)動(dòng)


while True:
    for event in pygame.event.get():
        if event.type in (pygame.locals.QUIT, pygame.locals.KEYDOWN):
            # 如果是按下了任意鍵或者是點(diǎn)擊了關(guān)閉按鈕,那么退出程序
            sys.exit()

    # vx = 10
    # vy = 20

    # px = 200
    # py = 300

    px += vx
    py += vy
    if px <= 0 or px + 100 >= 600:
        vx = - vx
    # else:
    #     px += vx


    if py <= 0 or py + 100 >= 500:
        vy = - vy
    # else:
    #     py += vy

    screen.fill(color1)

    pygame.draw.rect(screen, color2, (px, py, 100, 100))

    time.sleep(0.2)

    pygame.display.update()




五、繪制一條直線

# 繪制線條

import pygame
import pygame.locals
import sys
import time


color1 = 0, 80, 0

color2 = 100, 255, 200

pygame.init()
# 初始化

screen = pygame.display.set_mode((600, 500))
# 設(shè)置顯示屏幕

pygame.display.set_caption("Drawing Lines")
# 設(shè)置顯示框的標(biāo)題的名稱

while True:
    for event in pygame.event.get():
        if event.type == pygame.locals.QUIT or event.type == pygame.locals.KEYDOWN:
            sys.exit()
            # 與前面一樣,如果說按下任意鍵或者是按下關(guān)閉的按鈕,那么我們就退出程序

    screen.fill(color1)

    pygame.draw.line(screen, color2, (150, 150), (450, 450), width=10)

    pygame.display.update()





運(yùn)行代碼的結(jié)果展示;

在這里,我們?cè)僖淮卧敿?xì)地介紹一下line里面的各個(gè)參數(shù)的意義:

    pygame.draw.line(screen, color2, (150, 150), (450, 450), width=10)


1、第一個(gè)參數(shù) : 設(shè)置用于顯示的屏幕是誰

2、第二個(gè)參數(shù) : 設(shè)置直線段的顏色

3、第三個(gè)闡述 : 設(shè)置起點(diǎn),也就是開始的位置

4、第四個(gè)參數(shù) : 設(shè)置終點(diǎn),也就是停止的位置

5、第五個(gè)參數(shù) : 設(shè)置線條的寬度或者說是粗細(xì)的程度

最后再說一句,別忘記了加上一個(gè)

pygame.display.update()

用來更新畫面

六、繪制一條弧線

首先,我們繪制一個(gè)圓的一部分,也就是真正的圓弧形:

import math
import pygame
import pygame.locals
import sys
import time


color1 = 144, 238, 144
color2 = 0, 0, 139


pygame.init()
pygame.display.set_caption("Drawing Arcs")
screen = pygame.display.set_mode((600, 500))

while True:
    for event in pygame.event.get():
        if event.type in (pygame.locals.QUIT, pygame.locals.KEYDOWN):
            sys.exit()

    screen.fill(color1)

    ang1 = math.radians(45)
    # 設(shè)置起始角位置
    ang2 = math.radians(315)
    # 設(shè)置結(jié)束的角位置

    # 設(shè)置矩形框
    """
    元組中;
    第一個(gè)參數(shù),矩形框的左上角的橫坐標(biāo)
    第二個(gè)參數(shù),矩形框的右上角的縱坐標(biāo)
    第三個(gè)參數(shù),矩形框的長度
    即就是:相對(duì)于 x 軸平行的方向的長度
    第四個(gè)參數(shù),矩形框的寬度
    即就是:相對(duì)于 y 軸平行的方向的長度
    
    另外,如果矩形框的長度和寬度不相等的話,繪制出來的弧線不是圓的一部分,
    而是橢圓的一部分 
    """
    rect1 = 100, 50, 400, 400
    # 第一個(gè)矩形框----畫園的一部分
    rect2 = 200, 200, 200, 100
    # 第二個(gè)矩形框----畫橢園的一部分

    pygame.draw.arc(screen, color2, rect1, ang1, ang2, width=10)
    # 參數(shù)的含義解釋
    """
    第一個(gè)參數(shù):屏幕
    第二個(gè)參數(shù):顏色
    第三個(gè)參數(shù):開始的角度
    第四個(gè)參數(shù):結(jié)束的角度
    第五個(gè)參數(shù):線條的寬度
    """

    pygame.display.update()

接下來,我們繪制一個(gè)橢圓形的一部分:

正如前一個(gè)實(shí)例中的注釋所說,如果說:這個(gè)矩形框的長度和寬度不是相等的,那么,使用這個(gè)方法就是會(huì)繪制一個(gè)放 縮以后的橢圓形。

此處僅僅是吧上一個(gè)實(shí)例中的 rect1 換用為了 rect2 ,其他部分沒有任何的變化;

import math
import pygame
import pygame.locals
import sys
import time


color1 = 144, 238, 144
color2 = 0, 0, 139


pygame.init()
pygame.display.set_caption("Drawing Arcs")
screen = pygame.display.set_mode((600, 500))

while True:
    for event in pygame.event.get():
        if event.type in (pygame.locals.QUIT, pygame.locals.KEYDOWN):
            sys.exit()

    screen.fill(color1)

    ang1 = math.radians(45)
    # 設(shè)置起始角位置
    ang2 = math.radians(315)
    # 設(shè)置結(jié)束的角位置

    # 設(shè)置矩形框
    """
    元組中;
    第一個(gè)參數(shù),矩形框的左上角的橫坐標(biāo)
    第二個(gè)參數(shù),矩形框的右上角的縱坐標(biāo)
    第三個(gè)參數(shù),矩形框的長度
    即就是:相對(duì)于 x 軸平行的方向的長度
    第四個(gè)參數(shù),矩形框的寬度
    即就是:相對(duì)于 y 軸平行的方向的長度
    
    另外,如果矩形框的長度和寬度不相等的話,繪制出來的弧線不是圓的一部分,
    而是橢圓的一部分 
    """
    rect1 = 100, 50, 400, 400
    # 第一個(gè)矩形框----畫園的一部分
    rect2 = 200, 200, 200, 100
    # 第二個(gè)矩形框----畫橢園的一部分

    pygame.draw.arc(screen, color2, rect2, ang1, ang2, width=10)
    # 參數(shù)的含義解釋
    """
    第一個(gè)參數(shù):屏幕
    第二個(gè)參數(shù):顏色
    第三個(gè)參數(shù):開始的角度
    第四個(gè)參數(shù):結(jié)束的角度
    第五個(gè)參數(shù):線條的寬度
    """

    pygame.display.update()

運(yùn)行代碼的結(jié)果如下圖所示;

我們可以看到,這里確實(shí)是把豎直方向的寬度進(jìn)行了壓縮,使得原本的那個(gè)圓形變?yōu)榱艘粋€(gè)橢圓,同時(shí),我們也把圓弧形,變?yōu)榱艘粋€(gè)橢圓弧形。

綜上,以上就是我的第一份筆記,后續(xù)會(huì)進(jìn)行更新的啦,這是第一份,后續(xù)有多少還沒想好,但總之會(huì)持續(xù)更新,直到我把pygame學(xué)習(xí)完畢。后續(xù)還會(huì)去看看有沒有機(jī)會(huì)學(xué)習(xí)頁游,手游等游戲得制作,加油!

以上就是python pygame入門教程的詳細(xì)內(nèi)容,更多關(guān)于python pygame入門的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python批量下載網(wǎng)站馬拉松照片的完整步驟

    python批量下載網(wǎng)站馬拉松照片的完整步驟

    這篇文章主要給大家介紹了關(guān)于利用python批量下載網(wǎng)站馬拉松照片的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • python實(shí)現(xiàn)視頻分幀效果

    python實(shí)現(xiàn)視頻分幀效果

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)視頻分幀效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 元組列表字典(莫煩python基礎(chǔ))

    元組列表字典(莫煩python基礎(chǔ))

    這篇文章主要介紹了python元組列表字典,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • python使用matplotlib畫餅狀圖

    python使用matplotlib畫餅狀圖

    這篇文章主要為大家詳細(xì)介紹了python使用matplotlib畫餅狀圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • python神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)利用PyTorch進(jìn)行回歸運(yùn)算

    python神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)利用PyTorch進(jìn)行回歸運(yùn)算

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)利用PyTorch進(jìn)行回歸運(yùn)算的實(shí)現(xiàn)代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • python的launcher用法知識(shí)點(diǎn)總結(jié)

    python的launcher用法知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于python的launcher用法知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-08-08
  • ConvNeXt實(shí)戰(zhàn)之實(shí)現(xiàn)植物幼苗分類

    ConvNeXt實(shí)戰(zhàn)之實(shí)現(xiàn)植物幼苗分類

    ConvNeXts由標(biāo)準(zhǔn)ConvNet模塊構(gòu)建,在準(zhǔn)確性和可擴(kuò)展性方面與 Transformer競爭,實(shí)現(xiàn)87.8% ImageNet top-1 準(zhǔn)確率,在 COCO 檢測和 ADE20K 分割方面優(yōu)于 Swin Transformers。本文將利用ConvNeXt實(shí)現(xiàn)植物幼苗分類,需要的可以參考一下
    2022-01-01
  • python 刪除系統(tǒng)中的文件(按時(shí)間,大小,擴(kuò)展名)

    python 刪除系統(tǒng)中的文件(按時(shí)間,大小,擴(kuò)展名)

    這篇文章主要介紹了python 如何刪除系統(tǒng)中的文件,分別按時(shí)間,大小,擴(kuò)展名刪除,滿足不同需求,感興趣的朋友可以了解下
    2020-11-11
  • 關(guān)于Python下的Matlab函數(shù)對(duì)應(yīng)關(guān)系(Numpy)

    關(guān)于Python下的Matlab函數(shù)對(duì)應(yīng)關(guān)系(Numpy)

    這篇文章主要介紹了關(guān)于Python下的Matlab函數(shù)對(duì)應(yīng)關(guān)系(Numpy),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python實(shí)現(xiàn)web應(yīng)用框架之增加動(dòng)態(tài)路由

    python實(shí)現(xiàn)web應(yīng)用框架之增加動(dòng)態(tài)路由

    這篇文章主要介紹web應(yīng)用框架如何添加動(dòng)態(tài)路由,在我們編寫的框架中,我們添加動(dòng)態(tài)路由,是使用了正則表達(dá)式,同時(shí)在注冊(cè)的時(shí)候,需要注明該路由是請(qǐng)求路由,文中有詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

大方县| 莱阳市| 芦山县| 孟村| 佳木斯市| 万年县| 阳江市| 若尔盖县| 莫力| 伊通| 青河县| 调兵山市| 漳浦县| 玉环县| 嘉荫县| 江阴市| 吉木萨尔县| 家居| 通州区| 寿宁县| 东乌| 普定县| 望都县| 伊吾县| 舟山市| 社会| 莱州市| 都兰县| 汝州市| 平顺县| 尼木县| 扬中市| 海口市| 彭阳县| 会宁县| 江西省| 汝阳县| 宁乡县| 遵义县| 盐津县| 大方县|