Python rect函数用法用法介绍(python)

本文将详细介绍Python中的rect函数的用法,并且从多个方面进行阐述。rect函数是pygame中非常重要的一个函数,可以用来绘制矩形图形。

一、rect函数的基本用法

rect函数的基本用法就是用来绘制矩形图形,其函数定义如下:

pygame.draw.rect(surface, color, rect, width=0)

其中,参数说明如下:

  • surface:表示要在哪个surface对象上绘制矩形
  • color:表示矩形的颜色
  • rect:矩形位置和大小的元组,格式为(x,y,width,height)
  • width:表示矩形边缘的宽度,如果为0表示填充矩形,否则表示绘制边框

下面是一个简单的示例:

import pygame

pygame.init()
 
win = pygame.display.set_mode((500, 500))
 
pygame.display.set_caption("Rect Function")
 
# 设置颜色
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
WHITE = (255, 255, 255)
 
# 绘制矩形
pygame.draw.rect(win, RED, (100, 100, 200, 150), 3)
pygame.draw.rect(win, GREEN, (250, 200, 100, 100))
pygame.display.update()

# 程序主循环
while True:
   for event in pygame.event.get():
      if event.type == pygame.QUIT:
         pygame.quit()
         sys.exit()

上面的代码中,首先我们创建了一个500×500的窗口,然后使用pygame.draw.rect函数绘制了两个矩形,一个边框颜色为红色,大小为200×150,位置在(100,100),边框宽度为3;另一个颜色为绿色,大小为100×100,位置在(250,200)。

二、rect函数实现矩形动画

rect函数不仅可以用来绘制静态的矩形,还可以用来实现矩形动画效果。

在下面的示例中,我们将创建一个矩形对象,并且通过改变矩形对象在窗口中的位置,实现矩形的动态移动效果。

import pygame
import random
pygame.init()

win = pygame.display.set_mode((500, 500))
pygame.display.set_caption("Rect Animation")

RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
WHITE = (255, 255, 255)

x = 50
y = 50
width = 40
height = 60
vel = 5

# 创建矩形对象
rect = pygame.Rect(x, y, width, height)

run = True
while run:
    pygame.time.delay(10)
    
    # 获取事件队列
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    
    # 监听键盘事件
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        rect.x -= vel
    if keys[pygame.K_RIGHT]:
        rect.x += vel
    if keys[pygame.K_UP]:
        rect.y -= vel
    if keys[pygame.K_DOWN]:
        rect.y += vel
    
    # 移动矩形
    win.fill(WHITE)
    pygame.draw.rect(win, RED, rect)
    pygame.display.update()

pygame.quit()

上面的代码中,我们创建了一个40×60的矩形对象rect,并初始化了其位置在(50,50)。在程序主循环中,不断监听键盘事件,并根据键盘按键的状态改变矩形对象的位置,从而实现矩形动态移动的效果。其中,键盘事件使用pygame.key.get_pressed()进行监听,根据按键的状态来判断移动方向。

三、rect函数绘制圆角矩形

除了可以绘制普通矩形之外,rect函数还可以绘制圆角矩形。实现圆角矩形的方法是可以通过改变矩形的边角半径来实现,对应的参数是border_radius。下面是一个实现绘制圆角矩形的示例代码:

import pygame

pygame.init()
 
win = pygame.display.set_mode((500, 500))
 
pygame.display.set_caption("Round Rect Function")
 
# 设置颜色
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
WHITE = (255, 255, 255)

# 绘制圆角矩形
pygame.draw.rect(win, RED, (100, 100, 200, 150), 0, 10)
pygame.display.update()

# 程序主循环
while True:
   for event in pygame.event.get():
      if event.type == pygame.QUIT:
         pygame.quit()
         sys.exit()

上面的代码中,我们使用rect函数创建一个圆角矩形,位置在(100,100),大小为200×150。其中,边缘的线宽度为0,边角半径为10。

四、rect函数实现矩形填充渐变颜色效果

rect函数不仅可以绘制单一颜色的矩形,还可以实现矩形填充渐变颜色效果。在下面的示例中,我们将展示如何使用rect函数绘制渐变颜色矩形:

import pygame

pygame.init()
 
win = pygame.display.set_mode((500, 500))
 
pygame.display.set_caption("Gradient Rect Function")
 
# 设置颜色
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
WHITE = (255, 255, 255)

# 绘制渐变颜色矩形
for i in range(0, 200, 10):
    # 计算渐变颜色
    color = (i, 255-i, i)
    # 绘制矩形
    pygame.draw.rect(win, color, (i, i, 500-i*2, 500-i*2))

pygame.display.update()

# 程序主循环
while True:
   for event in pygame.event.get():
      if event.type == pygame.QUIT:
         pygame.quit()
         sys.exit()

上面的代码中,我们使用for循环对矩形大小进行改变,并计算每个矩形的渐变颜色。在每次循环中,使用pygame.draw.rect函数绘制矩形,并根据渐变颜色进行填充。

五、rect函数实现矩形描边渐变颜色效果

使用rect函数还可以实现矩形描边渐变颜色效果。在下面的示例中,我们将展示如何通过rect函数绘制描边渐变颜色矩形:

import pygame

pygame.init()
 
win = pygame.display.set_mode((500, 500))
 
pygame.display.set_caption("Gradient Border Rect Function")
 
# 设置颜色
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
WHITE = (255, 255, 255)

# 绘制描边渐变颜色矩形
for i in range(0, 200, 10):
    # 计算渐变颜色
    color = (i, 255-i, i)
    # 绘制矩形
    pygame.draw.rect(win, color, (i, i, 500-i*2, 500-i*2), 5)

pygame.display.update()

# 程序主循环
while True:
   for event in pygame.event.get():
      if event.type == pygame.QUIT:
         pygame.quit()
         sys.exit()

上面的代码中,我们同样使用for循环对矩形大小进行改变,并计算每个矩形的渐变颜色。在每次循环中,使用pygame.draw.rect函数绘制矩形边框,并根据渐变颜色进行填充。其中,描边的宽度为5。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平