使用Python的pygame庫(kù)繪制圖形示例詳解
導(dǎo)語(yǔ)
pygame是一個(gè)跨平臺(tái)Python庫(kù)(pygame news),專門(mén)用來(lái)開(kāi)發(fā)游戲。pygame主要為開(kāi)發(fā)、設(shè)計(jì)2D電子游戲而生,提供圖像模塊(image)、聲音模塊(mixer)、輸入/輸出(鼠標(biāo)、鍵盤(pán)、顯示屏)模塊等。使用pygame,理論上可以開(kāi)發(fā)設(shè)計(jì)市面上所有的2D類型游戲。
正文
繪制線條
我們可以使用 pygame.draw.line()函數(shù)來(lái)繪制直線。
pygame.draw.line(screen,線段的顏色,起點(diǎn)坐標(biāo),終點(diǎn)坐標(biāo),線寬)
pygame.draw.line(screen ,lightgreen, (300,0), (300,600), linewidth)
import pygame #導(dǎo)包
from pygame.locals import*
import sys
black=0,0,0
lightgreen=144,238,144
pygame.init() #初始化
screen = pygame.display.set_mode(size=(600,600),flags=0)
#繪制一個(gè)600*600的框框
while True:
for event in pygame.event.get():
if event.type in (QUIT,KEYDOWN):
sys.exit()#python的退出程序
linewidth=4 #“線”的粗細(xì)
pygame.draw.line(screen,lightgreen,(300,0),(300,600),linewidth)
pygame.display.update() # 刷新展示
繪制網(wǎng)格
通過(guò)循環(huán)繪制一個(gè)網(wǎng)格大小為三十像素的網(wǎng)絡(luò)
import pygame #導(dǎo)包
from pygame.locals import*
import sys
black=0,0,0
lightgreen=144,238,144
screen_width=600
screen_height=600
pygame.init() #初始化
screen = pygame.display.set_mode(size=(screen_width,screen_height),flags=0)
#繪制一個(gè)600*600的框框
# 設(shè)置網(wǎng)格大小
grid_size = 30 # 每個(gè)網(wǎng)格的大小為30個(gè)像素
# 繪制網(wǎng)格
for i in range(0, screen_width, grid_size):
pygame.draw.line(screen, lightgreen, (i, 0), (i, screen_height))
for i in range(0, screen_height, grid_size):
pygame.draw.line(screen, lightgreen, (0, i), (screen_width, i))
while True:
for event in pygame.event.get():
if event.type in (QUIT,KEYDOWN):
sys.exit()#python的退出程序
linewidth=4
pygame.display.update() # 刷新展示

繪制圓
pygame.draw.circle(screen,lightgreen,position,radius,linewidth)
通過(guò)pygame.draw.circle()可以畫(huà)圓
- screen代表屏幕
- lightgreen代表著圓的顏色
- position代表著圓心所在的位置
- radius代表著圓的半徑
- linewidth代表著線的粗細(xì)
import pygame #導(dǎo)包
from pygame.locals import*
import sys
black=0,0,0
lightgreen=144,238,144
screen_width=600
screen_height=600
pygame.init() #初始化
screen = pygame.display.set_mode(size=(screen_width,screen_height),flags=0)
#繪制一個(gè)600*600的框框
# 主循環(huán)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
color = 255,255,255
position = 300,250
radius = 100
width = 10
linewidth=4
screen.fill(color)
pygame.draw.circle(screen,lightgreen,position,radius,linewidth)
pygame.display.update() # 刷新展示

繪制矩形
pygame.draw.rect()是pygame庫(kù)中的一個(gè)函數(shù),用于在給定的屏幕上繪制一個(gè)矩形。
函數(shù)的參數(shù)解釋如下:
- screen: 這是你要在其上繪制矩形的pygame Surface 對(duì)象。
- lightgreen: 這是矩形的顏色。它是一個(gè)包含RGB值的元組,例如 (144, 238, 144)。
- pos: 這是矩形左上角的坐標(biāo) + 以左上標(biāo)點(diǎn)為原點(diǎn)的右下角坐標(biāo),下面給出了具體例子。
- width: 這是矩形的寬度。這是一個(gè)整數(shù)。
import pygame #導(dǎo)包
from pygame.locals import*
import sys
screen_width=600
screen_height=600
pygame.init() #初始化
screen = pygame.display.set_mode(size=(screen_width,screen_height))
pygame.display.set_caption("這是標(biāo)題")
pos_x = 300
pos_y =300
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
lightgreen=144,238,144
width = 0
pos = pos_x, pos_y, 300, 300
pygame.draw.rect(screen, lightgreen, pos, width)#300*300的矩形
pygame.display.update()繪制右下角的矩形區(qū)域:

繪制一個(gè)會(huì)動(dòng)的矩形
設(shè)置屏幕的寬度和高度為600x600像素。 定義矩形的橫向和縱向移動(dòng)速度為0.14像素/幀。 每次循環(huán)將背景填充為黑色。 根據(jù)速度更新矩形的位置。 當(dāng)矩形超出屏幕邊界時(shí),改變其速度的方向,使其反向移動(dòng)。 使用pygame.draw.rect()方法繪制矩形,設(shè)置顏色為黃色,寬度為0(實(shí)心矩形)。
import pygame #導(dǎo)包
from pygame.locals import*
import sys
screen_width=600
screen_height=600
pygame.init() #初始化
screen = pygame.display.set_mode(size=(screen_width,screen_height))
pygame.display.set_caption("這是標(biāo)題")
pos_x = 300
pos_y =300
vel_x = 0.14
vel_y = 0.1#粗略滴可以看作矩形的移動(dòng)速度
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
screen.fill((0,0,0))#每次循環(huán)都要將背景置為黑色
pos_x += vel_x
pos_y += vel_y
#當(dāng)矩形超過(guò)屏幕范圍后返回
if pos_x > 500 or pos_x < 0:
vel_x = -vel_x
if pos_y > 500 or pos_y < 0:
vel_y = -vel_y
#繪制矩形
color = 255, 255, 1
width = 0
pos = pos_x,pos_y, 100, 100
pygame.draw.rect(screen,color,pos,width)
pygame.display.update()
test2.5
其它常用的繪制圖形方法
Pygame 提供了多種繪制圖形的方法,這些方法主要用于在 Surface 對(duì)象上繪制基本的幾何形狀。以下是一些常用的 Pygame 繪制圖形的方法:
pygame.draw.polygon(): 用于繪制多邊形。你需要提供一個(gè)點(diǎn)的列表來(lái)定義多邊形的頂點(diǎn),以及多邊形的顏色。pygame.draw.ellipse(): 用于繪制橢圓。你需要指定一個(gè)矩形區(qū)域,橢圓將在這個(gè)區(qū)域內(nèi)繪制,同時(shí)還需要指定橢圓的顏色。pygame.draw.arc(): 用于繪制圓弧。你需要指定一個(gè)矩形區(qū)域,圓弧將在這個(gè)區(qū)域內(nèi)繪制,同時(shí)還需要指定圓弧的起始和結(jié)束角度、顏色。pygame.draw.lines(): 用于繪制一系列相連的線段,可以創(chuàng)建開(kāi)放或閉合的多邊形。你需要提供一個(gè)點(diǎn)的列表來(lái)定義線段的頂點(diǎn),以及線段的顏色和寬度。pygame.draw.aaline()和pygame.draw.aalines(): 用于繪制抗鋸齒線段,可以平滑線段的邊緣。這兩個(gè)方法只能繪制一個(gè)像素寬的線段,不支持設(shè)置線寬。
小結(jié)
在本篇文章中,主要介紹了如何繪制一條線、圓形、矩形、以及簡(jiǎn)單地實(shí)現(xiàn)了將矩形“動(dòng)起來(lái)”,每個(gè)例子都有其對(duì)應(yīng)的完整代碼,可以直接復(fù)制使用。
到此這篇關(guān)于使用Python的pygame庫(kù)繪制圖形示例詳解的文章就介紹到這了,更多相關(guān)Python pygame繪制圖形內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3.5面向?qū)ο缶幊虉D文與實(shí)例詳解
這篇文章主要介紹了Python3.5面向?qū)ο缶幊?結(jié)合圖文與實(shí)例形式詳細(xì)分析了Python面向?qū)ο缶幊滔嚓P(guān)的概念、類定義、實(shí)例化、實(shí)例變量、類變量、析構(gòu)函數(shù)等相關(guān)原理及使用技巧,需要的朋友可以參考下2019-04-04
詳解如何利用Pytest?Cache?Fixture實(shí)現(xiàn)測(cè)試結(jié)果緩存
這篇文章主要為大家詳細(xì)介紹了如何利用Pytest?Cache?Fixture實(shí)現(xiàn)測(cè)試結(jié)果緩存,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-09-09
python讀csv文件時(shí)指定行為表頭或無(wú)表頭的方法
這篇文章主要介紹了python讀csv文件時(shí)指定行為表頭或無(wú)表頭的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
python之隨機(jī)數(shù)函數(shù)的實(shí)現(xiàn)示例
這篇文章主要介紹了python之隨機(jī)數(shù)函數(shù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
python 系統(tǒng)調(diào)用的實(shí)例詳解
這篇文章主要介紹了python 系統(tǒng)調(diào)用的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-07-07
Python?按規(guī)則解析并替換字符串中的變量及函數(shù)(示例代碼)
這篇文章主要介紹了Python?按規(guī)則解析并替換字符串中的變量及函數(shù),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-11-11

