Pygame教程04:draw方法绘制矩形、多边形、圆、椭圆、弧线、直线和线条等

------------★Pygame系列教程★------------

Pygame经典游戏:贪吃蛇

Pygame教程01:初识pygame游戏模块

Pygame教程02:图片的加载+缩放+旋转+显示操作

Pygame教程03:文本显示+字体加载+transform方法

Pygame教程04:draw方法绘制矩形、多边形、圆、椭圆、弧线、直线和线条等

Pygame教程05:帧动画原理+边界值检测,让小球来回上下运动

Pygame教程06:Event事件的类型+处理方法+监听鼠标事件

Pygame教程07:键盘常量+键盘事件的2种捕捉方式

Pygame教程08:使用键盘方向键,控制小球,上下左右移动。

pygame.draw 是 Pygame 库中的一个模块,它提供了一系列的函数,用于在 Surface 对象上绘制各种图形,如矩形、多边形、圆、椭圆、弧线、直线和线条等。
在这里插入图片描述
1.关于图形的颜色是否处于填充状态,以画矩形为例。如果你想要绘制一个带有边框但不填充内部的矩形,你可以使用pygame.draw.rect() 的第4个参数来指定边框的宽度。边框宽度大于0为不填充,=0或不填width参数即表示填充所画的图形。

# 1.绘制一个蓝色的矩形边框,不填充内部 
# 边框宽度为 2 像素
pygame.draw.rect(screen, BLUE, (50, 50, 100, 50), 2)
# 2.填充的写法
pygame.draw.rect(screen, BLUE, (50, 50, 100, 50)) 
pygame.draw.rect(screen, BLUE, (50, 50, 100, 50), 0)

在这里插入图片描述

# @Author : 小红牛
# 微信公众号:WdPython
import math
import pygame

# 初始化 Pygame
pygame.init()

# 设置窗口大小
screen_width = 640
screen_height = 480
screen = pygame.display.set_mode((screen_width, screen_height))

# 设置颜色常量
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)

# 游戏主循环
while True:
    # 处理事件队列
    for event in pygame.event.get():
        if event.type == pygame.QUIT:  # 如果用户点击了关闭按钮
            exit()

    # 清空屏幕
    screen.fill(WHITE)

    # 使用pygame.draw绘制图形

    # 1.绘制矩形
    pygame.draw.rect(screen, BLACK, (50, 50, 100, 50), 1)  # (x, y, width, height), 最后一个参数是线条宽度

    # 2.绘制多边形(三角形)
    pygame.draw.polygon(screen, RED, [(150, 50), (200, 150), (100, 200)], 3)  # 顶点列表,最后一个参数是线条宽度

    # 3.绘制圆
    pygame.draw.circle(screen, BLACK, (300, 300), 50, 2)  # (x, y), 半径, 线条宽度

    # 4.绘制椭圆(在矩形内)
    pygame.draw.ellipse(screen, RED, (400, 200, 100, 50), 2)  # (x, y, width, height), 线条宽度

    # 5.绘制椭圆的一部分(弧线)
    pygame.draw.arc(screen, BLACK, (500, 200, 100, 50), 0, math.pi / 2, 2)  # (x, y, width, height), 起始角度, 结束角度, 线条宽度

    # 6.绘制直线
    pygame.draw.line(screen, RED, (100, 400), (500, 400), 3)  # (x1, y1), (x2, y2), 线条宽度

    # 7.绘制多条连续的直线(线段)
    points = [(100, 300), (200, 350), (300, 300), (400, 350)]
    pygame.draw.lines(screen, BLACK, False, points, 2)  # 点列表, 是否闭合, 点列表, 线条宽度

    # 8.绘制平滑的反锯齿线
    pygame.draw.aaline(screen, RED, (100, 200), (500, 200), 2)  # (x1, y1), (x2, y2), 线条宽度

    # 9.绘制平滑的反锯齿线序列
    points = [(100, 150), (200, 200), (300, 150), (400, 200)]
    pygame.draw.aalines(screen, BLACK, False, points, 2)  # 点列表, 是否闭合, 点列表, 线条宽度

    # 刷新屏幕显示
    pygame.display.flip()

完毕!!感谢您的收看

----------★★历史博文集合★★----------

我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具 NumPy Pygame

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 18:12:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 18:12:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 18:12:02       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 18:12:02       20 阅读

热门阅读

  1. 程序员常用的几种算法

    2024-03-14 18:12:02       19 阅读
  2. 开发指南007-导出Excel

    2024-03-14 18:12:02       19 阅读
  3. 通过xlsx库解析读取excel表格内容

    2024-03-14 18:12:02       20 阅读
  4. Python Web相关面试题(一)

    2024-03-14 18:12:02       18 阅读
  5. Spring IOC和AOP

    2024-03-14 18:12:02       15 阅读
  6. 【Docker】PostgreSQL 容器化部署

    2024-03-14 18:12:02       66 阅读
  7. 最新ChatGPT支持下的PyTorch机器学习与深度学习

    2024-03-14 18:12:02       17 阅读
  8. 0 OpenHarmony开源鸿蒙NEXT星河版内核嵌入式编程

    2024-03-14 18:12:02       19 阅读
  9. Nginx和Ribbon相比有哪些不同?

    2024-03-14 18:12:02       20 阅读