Pygame fournit un module de dessin pour dessiner des formes graphiques simples, telles que des rectangles, des polygones, des cercles, des lignes droites, des arcs, etc.
Les méthodes courantes du module pygame.draw sont présentées dans le tableau suivant :
Nom | Description |
---|---|
pygame.draw.rect() |
绘制矩形 |
pygame.draw.polygon() |
绘制多边形 |
pygame.draw.circle() |
根据圆心和半径绘制圆形 |
pygame.draw.ellipse() |
绘制一个椭圆形 |
pygame.draw.arc() |
绘制弧线(挥着椭圆的一部分) |
pygame.draw.line() |
绘制线段(直线) |
pygame.draw.lines() |
绘制多条连续的线段 |
pygame.draw.aaline() |
绘制一条平滑的线段(抗锯齿) |
pygame.draw.aalines() |
绘制多条连续的线段 |
表格中的函数使用方法大同小异,它们都可以在 Surface 对象上绘制一些简单的形状,返回值是一个 Rect 对象,表示实际绘制图形的矩形区域。上述绘图函数都提供了一个 color 参数,我们可以通过以下三种方式来传递 color 参数值:
pygame.color
对象
RGB
三元组
RGBA
四元组
下面通对上述一些方法的参数进行详细说明:
绘制矩形的语法格式如下:
pygame.draw.rect(surface, color, rect, width)
参数说明如下:
surface
:指主游戏窗口,无特殊情况,一般都会绘制在主屏幕上;
color
:该参数用于该图形着色;
rect
:绘制图形的位置和尺寸大小;
width
:可选参数,指定边框的宽度,默认为 0,表示填充该矩形区域。
注意,当 width > 0 时,表示线框的宽度;而 width < 0 时,此时不会绘制任何图形。
pygame.draw.polygon(surface, color, points, width)
参数说明如下
points
: 一个列表参数,它表示组成多边形顶点的 3 或者多个 (x,y) 坐标,通过元组或者列表来表示这些多边形顶点。
其余参数与上述函数相同。
pygame.circle(surface, color, pos, radius, width=0)
参数说明如下
pos
:该参数用来指定的圆心位置;
radius
:用来指定圆的半径;
其余参数与上述函数相同。
pygame.draw.ellipse(surface, color, Rect, width=0)
绘制椭圆形的过程,其实就是在矩形区域内部(Rect)绘制一个内接椭圆形
参数说明如下
其余参数与上述函数相同。
pygame.draw.arc(Surface, color, Rect, start_angle, stop_angle, width=1)
绘制椭圆形的过程,其实就是在矩形区域内部(Rect)绘制一个内接椭圆形
参数说明如下
start_angle
: 是该段圆弧的起始角度;
stop_angle
: 是终止角度;
其余参数与上述函数相同。
pygame.draw.line(surface, color, start_pos, end_pos, width=1)
参数说明如下
start_pos
: 是该线段的开始位置;
end_pos
: 是该线段的结束位置;;
其余参数与上述函数相同。
如果是绘制一条消除锯齿的平滑线,此时则使用 blend = 1 参数,如下所示:
pygame.aaline(surface, color, startpos, endpos, blend=1)
blend 参数表示通过绘制混合背景的阴影来实现抗锯齿功能。
参数说明如下
pointlist
: 参数值为列表,包含了一些列点坐标的列表;
closed
Dessinez un rectangle
pygame.draw.polygon()
Dessinez des polygones
pygame.draw.circle()
< /td>Dessinez un cercle en fonction du centre et du rayon
pygame.draw.ellipse()
Dessinez une ellipse
🎜🎜pygame.draw.arc()
🎜Dessiner un arc (en agitant une partie de l'ellipse)🎜🎜🎜pygame.draw.line()
td>🎜Dessiner des segments de ligne (lignes droites)🎜🎜🎜pygame.draw.lines()
🎜Dessiner plusieurs segments de ligne continue🎜🎜🎜 pygame.draw.aaline()
🎜Dessiner un segment de ligne lisse (anti-aliasing) 🎜🎜🎜pygame.draw.aalines()
🎜Dessinez plusieurs segments de ligne continue🎜🎜Les méthodes d'utilisation des fonctions du tableau sont similaires. Elles peuvent toutes dessiner des formes simples sur la surface. objet. La valeur de retour est un objet Rect, représentant la zone rectangulaire où le graphique est réellement dessiné. Les fonctions de dessin ci-dessus fournissent toutes un paramètre de couleur. Nous pouvons transmettre la valeur du paramètre de couleur des trois manières suivantes : 🎜pygame.color
object🎜 🎜🎜🎜RVB
Triplets🎜🎜🎜🎜RGB
Quadruples🎜🎜🎜🎜Les paramètres de certaines des méthodes ci-dessus sont expliqués en détail ci-dessous : 🎜pygame.draw.aalines(surface, color, closed, pointlist, blend=1)
surface
: fait référence à la fenêtre principale du jeu, aucun Dans des cas particuliers, il est généralement dessiné sur l'écran principal 🎜🎜🎜🎜color
: Ce paramètre est utilisé pour colorer le graphique 🎜🎜🎜🎜rect ;
: La position et la position du graphique dessiné. Taille ; 🎜🎜🎜🎜width
: Paramètre facultatif, spécifiant la largeur de la bordure, la valeur par défaut est 0, ce qui signifie remplir la zone rectangulaire. 🎜🎜🎜🎜Notez que lorsque la largeur > 0, cela indique la largeur du filaire et lorsque la largeur < 🎜
import pygame from math import pi # 初始化 pygame.init() # 设置主屏幕大小 size = (500, 450) screen = pygame.display.set_mode(size) # 设置标题 pygame.display.set_caption("Python自学网") # 设置一个控制主循环的变量 done = False # 创建时钟对象 clock = pygame.time.Clock() while not done: # 设置游戏的fps clock.tick(10) for event in pygame.event.get(): if event.type == pygame.QUIT: done = True # 若检测到关闭窗口,则将done置为True # 绘制一条宽度为 3 的红色对角线 pygame.draw.line(screen, (0, 255, 0), [0, 0], (500, 450), 3) # 绘制多条蓝色的直线(连续直线,非抗锯齿),False 表示首尾不相连 pygame.draw.lines(screen, (0, 0, 255), False, [[0, 80], [50, 90], [200, 80], [220, 30]], 1) # 绘制一个灰色的矩形区域,以灰色填充区域 pygame.draw.rect(screen, (155, 155, 155), (75, 10, 50, 20), 0) # 绘制一个线框宽度为2的矩形区域 pygame.draw.rect(screen, (0, 0, 0), [150, 10, 50, 20], 2) # 绘制一个椭圆形,其线宽为2 pygame.draw.ellipse(screen, (255, 0, 0), (225, 10, 50, 20), 2) # 绘制一个实心的红色椭圆形 pygame.draw.ellipse(screen, (255, 0, 0), (300, 10, 50, 20)) # 绘制一个绿色边框(宽度为2)三角形 pygame.draw.polygon(screen, (100, 200, 45), [[100, 100], [0, 200], [200, 200]], 2) # 绘制一个蓝色实心的圆形,其中[60,250]表示圆心的位置,40为半径,width默认为0 pygame.draw.circle(screen, (0, 0, 255), [60, 250], 40) # 绘制一个圆弧,其中0表示弧线的开始位置,pi/2表示弧线的结束位置,2表示线宽 pygame.draw.arc(screen, (255, 10, 0), (210, 75, 150, 125), 0, pi / 2, 2) # 刷新显示屏幕 pygame.display.flip() # 点击关闭,退出pygame程序 pygame.quit()
points
: un paramètre de liste, qui représente la composition de 3 coordonnées ou plus (x, y) de sommets de polygone, représentés par des tuples ou des listes. 🎜🎜🎜🎜Les paramètres restants sont les mêmes que la fonction ci-dessus. 🎜🎜🎜pos
: Ce paramètre est utilisé pour spécifiez la position centrale du cercle ;🎜🎜🎜🎜rayon
: utilisé pour spécifier le rayon du cercle 🎜🎜🎜🎜Les paramètres restants sont les mêmes que la fonction ci-dessus ; 🎜🎜🎜start_angle
: est l'angle de départ de l'arc ; 🎜🎜🎜🎜stop_angle
: est l'angle final ; 🎜🎜🎜🎜le reste Les paramètres sont les mêmes que la fonction ci-dessus. 🎜🎜🎜start_pos
: est la position de départ du segment de ligne ;🎜🎜 🎜🎜end_pos
: est la position finale du segment de ligne 🎜🎜🎜🎜Les paramètres restants sont les mêmes que la fonction ci-dessus ; 🎜🎜🎜🎜Si vous tracez une ligne lisse pour éliminer l'alias, utilisez le paramètre blend = 1, comme indiqué ci-dessous : 🎜rrreee🎜le paramètre blend indique que la fonction d'anti-aliasing est obtenue en dessinant une ombre de l'arrière-plan mélangé. 🎜pointlist
: La valeur du paramètre est une liste, incluant un certain nombre de points. Liste de coordonnées ; 🎜🎜🎜🎜fermé
: paramètre booléen, s'il est défini sur True, cela signifie que le premier point d'extrémité de la droite et le dernier point d'extrémité de la droite doivent être connecté bout à bout ; 🎜🎜🎜🎜Autres paramètres Identique à la fonction ci-dessus. 🎜🎜🎜🎜Si vous tracez une ligne droite anti-aliasée, utilisez la méthode suivante : 🎜rrreee🎜Sauf que blend = 1 est spécifié, la signification des paramètres restants est la même que celle de la fonction ci-dessus. 🎜🎜La méthode de dessin ci-dessus est démontrée ci-dessous à travers un ensemble d'exemples simples : 🎜rrreeeCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!