python pygame入門(mén)教程
在 cmd 命令中輸入: pip install pygame
即可安裝成功了
二、第一個(gè)代碼實(shí)例代碼快里面有注釋?zhuān)氡卮蠹叶伎梢钥炊摹?/p>
import pygameimport sysimport pygame.localspygame.init()# 初始化screen = pygame.display.set_mode((500, 600))# 設(shè)置屏幕的大小pygame.display.set_caption('First Demo')# 設(shè)置屏幕的名稱(chēng)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 pygameimport pygame.localsimport syspygame.init()screen = pygame.display.set_mode((600, 500))pygame.display.set_caption('Drawing Rectangles')# 設(shè)置名稱(chēng)Blue = 0, 0, 255Purple = 160, 32, 240while True: for event in pygame.event.get():if event.type == pygame.locals.QUIT or event.type == pygame.locals.KEYDOWN: # 還是如果說(shuō)點(diǎn)擊了關(guān)閉的按鍵,或者是按下了任意鍵,那么就可以關(guān)閉程序了 sys.exit() pos = (300, 250, 100, 100) # 這里的 pos 不僅設(shè)置了位置,而且設(shè)置了長(zhǎng)度以及寬度 screen.fill(Purple) pygame.draw.rect(screen, Blue, pos, width=10) # width 是線(xiàn)條的寬度,screen 表示指定使用哪一個(gè)屏幕進(jìn)行顯示 pygame.display.update()
代碼運(yùn)行的結(jié)果;

import pygameimport pygame.localsimport sysimport timepygame.init()screen = pygame.display.set_mode((600, 500))pygame.display.set_caption('Drawing Moving Rectangle')color1 = 139, 0, 139color2 = 104, 131, 139px = 200py = 300# 初始化的位置應(yīng)該放在外面,否則會(huì)一直在一個(gè)地方繪制圖形了vx = 10vy = 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()五、繪制一條直線(xiàn)
# 繪制線(xiàn)條import pygameimport pygame.localsimport sysimport timecolor1 = 0, 80, 0color2 = 100, 255, 200pygame.init()# 初始化screen = pygame.display.set_mode((600, 500))# 設(shè)置顯示屏幕pygame.display.set_caption('Drawing Lines')# 設(shè)置顯示框的標(biāo)題的名稱(chēng)while True: for event in pygame.event.get():if event.type == pygame.locals.QUIT or event.type == pygame.locals.KEYDOWN: sys.exit() # 與前面一樣,如果說(shuō)按下任意鍵或者是按下關(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è)置用于顯示的屏幕是誰(shuí)
2、第二個(gè)參數(shù) : 設(shè)置直線(xiàn)段的顏色
3、第三個(gè)闡述 : 設(shè)置起點(diǎn),也就是開(kāi)始的位置
4、第四個(gè)參數(shù) : 設(shè)置終點(diǎn),也就是停止的位置
5、第五個(gè)參數(shù) : 設(shè)置線(xiàn)條的寬度或者說(shuō)是粗細(xì)的程度
最后再說(shuō)一句,別忘記了加上一個(gè)
pygame.display.update()
用來(lái)更新畫(huà)面
六、繪制一條弧線(xiàn)首先,我們繪制一個(gè)圓的一部分,也就是真正的圓弧形:
import mathimport pygameimport pygame.localsimport sysimport timecolor1 = 144, 238, 144color2 = 0, 0, 139pygame.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ù),矩形框的長(zhǎng)度 即就是:相對(duì)于 x 軸平行的方向的長(zhǎng)度 第四個(gè)參數(shù),矩形框的寬度 即就是:相對(duì)于 y 軸平行的方向的長(zhǎng)度另外,如果矩形框的長(zhǎng)度和寬度不相等的話(huà),繪制出來(lái)的弧線(xiàn)不是圓的一部分, 而是橢圓的一部分 ''' rect1 = 100, 50, 400, 400 # 第一個(gè)矩形框----畫(huà)園的一部分 rect2 = 200, 200, 200, 100 # 第二個(gè)矩形框----畫(huà)橢園的一部分 pygame.draw.arc(screen, color2, rect1, ang1, ang2, width=10) # 參數(shù)的含義解釋 ''' 第一個(gè)參數(shù):屏幕 第二個(gè)參數(shù):顏色 第三個(gè)參數(shù):開(kāi)始的角度 第四個(gè)參數(shù):結(jié)束的角度 第五個(gè)參數(shù):線(xiàn)條的寬度 ''' pygame.display.update()

接下來(lái),我們繪制一個(gè)橢圓形的一部分:
正如前一個(gè)實(shí)例中的注釋所說(shuō),如果說(shuō):這個(gè)矩形框的長(zhǎng)度和寬度不是相等的,那么,使用這個(gè)方法就是會(huì)繪制一個(gè)放 縮以后的橢圓形。
此處僅僅是吧上一個(gè)實(shí)例中的 rect1 換用為了 rect2 ,其他部分沒(méi)有任何的變化;
import mathimport pygameimport pygame.localsimport sysimport timecolor1 = 144, 238, 144color2 = 0, 0, 139pygame.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ù),矩形框的長(zhǎng)度 即就是:相對(duì)于 x 軸平行的方向的長(zhǎng)度 第四個(gè)參數(shù),矩形框的寬度 即就是:相對(duì)于 y 軸平行的方向的長(zhǎng)度另外,如果矩形框的長(zhǎng)度和寬度不相等的話(huà),繪制出來(lái)的弧線(xiàn)不是圓的一部分, 而是橢圓的一部分 ''' rect1 = 100, 50, 400, 400 # 第一個(gè)矩形框----畫(huà)園的一部分 rect2 = 200, 200, 200, 100 # 第二個(gè)矩形框----畫(huà)橢園的一部分 pygame.draw.arc(screen, color2, rect2, ang1, ang2, width=10) # 參數(shù)的含義解釋 ''' 第一個(gè)參數(shù):屏幕 第二個(gè)參數(shù):顏色 第三個(gè)參數(shù):開(kāi)始的角度 第四個(gè)參數(shù):結(jié)束的角度 第五個(gè)參數(shù):線(xiàn)條的寬度 ''' pygame.display.update()
運(yùn)行代碼的結(jié)果如下圖所示;

我們可以看到,這里確實(shí)是把豎直方向的寬度進(jìn)行了壓縮,使得原本的那個(gè)圓形變?yōu)榱艘粋€(gè)橢圓,同時(shí),我們也把圓弧形,變?yōu)榱艘粋€(gè)橢圓弧形。
綜上,以上就是我的第一份筆記,后續(xù)會(huì)進(jìn)行更新的啦,這是第一份,后續(xù)有多少還沒(méi)想好,但總之會(huì)持續(xù)更新,直到我把pygame學(xué)習(xí)完畢。后續(xù)還會(huì)去看看有沒(méi)有機(jī)會(huì)學(xué)習(xí)頁(yè)游,手游等游戲得制作,加油!
以上就是python pygame入門(mén)教程的詳細(xì)內(nèi)容,更多關(guān)于python pygame入門(mén)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. 詳解Android studio 動(dòng)態(tài)fragment的用法2. 基于android studio的layout的xml文件的創(chuàng)建方式3. 編程語(yǔ)言PHP在Web開(kāi)發(fā)領(lǐng)域的優(yōu)勢(shì)在哪?4. 解決Android studio xml界面無(wú)法預(yù)覽問(wèn)題5. 什么是python的自省6. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁(yè)效果(實(shí)例代碼)7. 圖文詳解vue中proto文件的函數(shù)調(diào)用8. Android如何加載Base64編碼格式圖片9. Springboot Druid 自定義加密數(shù)據(jù)庫(kù)密碼的幾種方案10. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)

網(wǎng)公網(wǎng)安備