我的编程空间,编程开发者的网络收藏夹
学习永远不晚

pygame学习(二)——绘制线条、圆、矩形等图案

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

pygame学习(二)——绘制线条、圆、矩形等图案

大家好!我是码银,代码的,银子的🥰

欢迎关注🥰:

CSDN:码银

公众号:码银学编程

导语

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

 正文

1、绘制线条 

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

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

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

import pygame #导包from pygame.locals import*import sysblack=0,0,0lightgreen=144,238,144pygame.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()  # 刷新展示

2、绘制网格 

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

import pygame #导包from pygame.locals import*import sysblack=0,0,0lightgreen=144,238,144screen_width=600screen_height=600pygame.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()  # 刷新展示

3、绘制圆

pygame.draw.circle(screen,lightgreen,position,radius,linewidth)

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

  • screen代表屏幕
  • lightgreen代表着圆的颜色
  • position代表着圆心所在的位置
  • radius代表着圆的半径
  • linewidth代表着线的粗细 
import pygame #导包from pygame.locals import*import sysblack=0,0,0lightgreen=144,238,144screen_width=600screen_height=600pygame.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()  # 刷新展示

 

4、绘制矩形

pygame.draw.rect() 是pygame库中的一个函数,用于在给定的屏幕上绘制一个矩形。

函数的参数解释如下:

  • screen: 这是你要在其上绘制矩形的pygame Surface 对象。
  • lightgreen: 这是矩形的颜色。它是一个包含RGB值的元组,例如 (144, 238, 144)。
  • pos: 这是矩形左上角的坐标 + 以左上标点为原点的右下角坐标,下面给出了具体例子。
  • width: 这是矩形的宽度。这是一个整数。
import pygame #导包from pygame.locals import*import sysscreen_width=600screen_height=600pygame.init() #初始化screen = pygame.display.set_mode(size=(screen_width,screen_height))pygame.display.set_caption("这是标题")pos_x = 300pos_y =300while 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()

 绘制右下角的矩形区域:

 5、绘制一个会动的矩形

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

import pygame #导包from pygame.locals import*import sysscreen_width=600screen_height=600pygame.init() #初始化screen = pygame.display.set_mode(size=(screen_width,screen_height))pygame.display.set_caption("这是标题")pos_x = 300pos_y =300vel_x = 0.14vel_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

 6、还有哪些常用的绘制图形方法?

Pygame 提供了多种绘制图形的方法,这些方法主要用于在 Surface 对象上绘制基本的几何形状。以下是一些常用的 Pygame 绘制图形的方法:

  1. pygame.draw.polygon(): 用于绘制多边形。你需要提供一个点的列表来定义多边形的顶点,以及多边形的颜色。

  2. pygame.draw.ellipse(): 用于绘制椭圆。你需要指定一个矩形区域,椭圆将在这个区域内绘制,同时还需要指定椭圆的颜色。

  3. pygame.draw.arc(): 用于绘制圆弧。你需要指定一个矩形区域,圆弧将在这个区域内绘制,同时还需要指定圆弧的起始和结束角度、颜色。

  4. pygame.draw.lines(): 用于绘制一系列相连的线段,可以创建开放或闭合的多边形。你需要提供一个点的列表来定义线段的顶点,以及线段的颜色和宽度。

  5. pygame.draw.aaline() 和 pygame.draw.aalines(): 用于绘制抗锯齿线段,可以平滑线段的边缘。这两个方法只能绘制一个像素宽的线段,不支持设置线宽。

小结

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

来源地址:https://blog.csdn.net/weixin_53197693/article/details/135341041

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

pygame学习(二)——绘制线条、圆、矩形等图案

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录