使用Python的pygame库绘制图形示例详解

 更新时间:2024年02月11日 11:00:49   作者:码银  
这篇文章主要介绍了使用Python的Pygame库绘制图形的方法,Pygame是被设计用来写游戏的python模块集合,Pygame是在优秀的SDL库之上开发的功能性包,通常使用Pygame来开发具有全部特性的游戏和多媒体软件,感兴趣的朋友可以参考下

导语

pygame是一个跨平台Python库(pygame news),专门用来开发游戏。pygame主要为开发、设计2D电子游戏而生,提供图像模块(image)、声音模块(mixer)、输入/输出(鼠标、键盘、显示屏)模块等。使用pygame,理论上可以开发设计市面上所有的2D类型游戏。

正文

绘制线条

我们可以使用 pygame.draw.line()函数来绘制直线。

pygame.draw.line(screen,线段的颜色,起点坐标,终点坐标,线宽)

pygame.draw.line(screen ,lightgreen, (300,0), (300,600), linewidth)

import pygame #导包
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)
#绘制一个600*600的框框
while True:
    for event in pygame.event.get():
        if event.type in (QUIT,KEYDOWN):
            sys.exit()#python的退出程序
    linewidth=4 #“线”的粗细
    pygame.draw.line(screen,lightgreen,(300,0),(300,600),linewidth)
    pygame.display.update()  # 刷新展示

绘制网格

通过循环绘制一个网格大小为三十像素的网络

import pygame #导包
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)
#绘制一个600*600的框框
# 设置网格大小
grid_size = 30  # 每个网格的大小为30个像素
# 绘制网格
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)

通过pygame.draw.circle()可以画圆

  • screen代表屏幕
  • lightgreen代表着圆的颜色
  • position代表着圆心所在的位置
  • radius代表着圆的半径
  • linewidth代表着线的粗细
import pygame #导包
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)
#绘制一个600*600的框框
# 主循环
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库中的一个函数,用于在给定的屏幕上绘制一个矩形。

函数的参数解释如下:

  • screen: 这是你要在其上绘制矩形的pygame Surface 对象。
  • lightgreen: 这是矩形的颜色。它是一个包含RGB值的元组,例如 (144, 238, 144)。
  • pos: 这是矩形左上角的坐标 + 以左上标点为原点的右下角坐标,下面给出了具体例子。
  • width: 这是矩形的宽度。这是一个整数。
import pygame #导包
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("这是标题")
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()

绘制右下角的矩形区域:

绘制一个会动的矩形

设置屏幕的宽度和高度为600x600像素。 定义矩形的横向和纵向移动速度为0.14像素/帧。 每次循环将背景填充为黑色。 根据速度更新矩形的位置。 当矩形超出屏幕边界时,改变其速度的方向,使其反向移动。 使用pygame.draw.rect()方法绘制矩形,设置颜色为黄色,宽度为0(实心矩形)。

import pygame #导包
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("这是标题")
pos_x = 300
pos_y =300
vel_x = 0.14
vel_y = 0.1#粗略滴可以看作矩形的移动速度
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    screen.fill((0,0,0))#每次循环都要将背景置为黑色
    pos_x += vel_x
    pos_y += vel_y
    #当矩形超过屏幕范围后返回
    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 对象上绘制基本的几何形状。以下是一些常用的 Pygame 绘制图形的方法:

  • pygame.draw.polygon(): 用于绘制多边形。你需要提供一个点的列表来定义多边形的顶点,以及多边形的颜色。
  • pygame.draw.ellipse(): 用于绘制椭圆。你需要指定一个矩形区域,椭圆将在这个区域内绘制,同时还需要指定椭圆的颜色。
  • pygame.draw.arc(): 用于绘制圆弧。你需要指定一个矩形区域,圆弧将在这个区域内绘制,同时还需要指定圆弧的起始和结束角度、颜色。
  • pygame.draw.lines(): 用于绘制一系列相连的线段,可以创建开放或闭合的多边形。你需要提供一个点的列表来定义线段的顶点,以及线段的颜色和宽度。
  • pygame.draw.aaline()pygame.draw.aalines(): 用于绘制抗锯齿线段,可以平滑线段的边缘。这两个方法只能绘制一个像素宽的线段,不支持设置线宽。

小结

在本篇文章中,主要介绍了如何绘制一条线、圆形、矩形、以及简单地实现了将矩形“动起来”,每个例子都有其对应的完整代码,可以直接复制使用。

到此这篇关于使用Python的pygame库绘制图形示例详解的文章就介绍到这了,更多相关Python pygame绘制图形内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python使用Scrapy下载图片的两种方式

    Python使用Scrapy下载图片的两种方式

    Scrapy是一个适用爬取网站数据、提取结构性数据的应用程序框架,它可以通过定制化的修改来满足不同的爬虫需求,本文给大家介绍了Python使用Scrapy下载图片的两种方式,需要的朋友可以参考下
    2025-08-08
  • python获取txt文件词向量过程详解

    python获取txt文件词向量过程详解

    这篇文章主要介绍了python获取txt文件词向量过程详解,如何读取完整的大文件,而不会出现内存不足memery error等问题,将读取出来的文件,保存为npy文件,根据词找到对应的向量,需要的朋友可以参考下
    2019-07-07
  • django框架实现一次性上传多个文件功能示例【批量上传】

    django框架实现一次性上传多个文件功能示例【批量上传】

    这篇文章主要介绍了django框架实现一次性上传多个文件功能,结合实例形式分析了Django框架批量上传相关实现技巧与操作注意事项,需要的朋友可以参考下
    2019-06-06
  • 使用Python+selenium实现第一个自动化测试脚本

    使用Python+selenium实现第一个自动化测试脚本

    这篇文章主要介绍了使用Python+selenium实现第一个自动化测试脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Window10下python3.7 安装与卸载教程图解

    Window10下python3.7 安装与卸载教程图解

    本文通过图文并茂的形式给大家介绍了WINDOW10下PYTHON3.7 安装与卸载,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • 彻底卸载anaconda详细教程(推荐!)

    彻底卸载anaconda详细教程(推荐!)

    用anaconda更改我的python版本,就是出现了冻结无法更改等等之类的问题,担心更新anaconda还是会出错,于是打算卸载anaconda,重新下载一个安装,下面这篇文章主要给大家介绍了关于彻底卸载anaconda的相关资料,需要的朋友可以参考下
    2022-11-11
  • 学习Python需要哪些工具

    学习Python需要哪些工具

    这篇文章主要介绍了学习Python需要哪些工具,帮助大家开始学习python编程,感兴趣的朋友可以了解下
    2020-09-09
  • 五个简单有效的Python清理数据脚本分享

    五个简单有效的Python清理数据脚本分享

    通常情况下,在机器学习中的数据清理往往是一件令人头疼的事情,本文整理了一份清单,列出了5个常用的Python脚本,用于自动化数据清理,需要的可以参考一下
    2022-09-09
  • Python按条件批量删除TXT文件行工具

    Python按条件批量删除TXT文件行工具

    这篇文章主要为大家详细介绍了Python如何实现按条件批量删除TXT文件中行的工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-12-12
  • python 模拟在天空中放风筝的示例代码

    python 模拟在天空中放风筝的示例代码

    这篇文章主要介绍了python 模拟放风筝的示例代码,帮助大家更好的利用python处理图像,感兴趣的朋友可以了解下
    2021-04-04

最新评论