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

这篇具有很好参考价值的文章主要介绍了pygame学习(二)——绘制线条、圆、矩形等图案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

pygame学习(二)——绘制线条、圆、矩形等图案,pygame,pygame,python,开发语言

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

欢迎关注🥰:

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 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()  # 刷新展示

pygame学习(二)——绘制线条、圆、矩形等图案,pygame,pygame,python,开发语言

2、绘制网格 

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

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学习(二)——绘制线条、圆、矩形等图案,pygame,pygame,python,开发语言

3、绘制圆

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学习(二)——绘制线条、圆、矩形等图案,pygame,pygame,python,开发语言

4、绘制矩形

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()

 绘制右下角的矩形区域:

pygame学习(二)——绘制线条、圆、矩形等图案,pygame,pygame,python,开发语言

 5、绘制一个会动的矩形

设置屏幕的宽度和高度为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

 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://www.toymoban.com/news/detail-777351.html

到了这里,关于pygame学习(二)——绘制线条、圆、矩形等图案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学习 Python 之 Pygame 开发坦克大战(二)

    坦克大战游戏包含很多个物体,现在要对这些物体进行总结 类名 包含的操作 包含的属性 敌方坦克类 射击,移动,显示 生命,速度,伤害,方向,类型 我方坦克类 射击,移动,显示 生命,速度,伤害,方向,装甲,等级 子弹类 移动,显示 方向,伤害,发射源,速度 墙壁

    2024年02月02日
    浏览(40)
  • python opencv 绘制矩形、圆、线、多边形

    👨‍💻 个人简介: 深度学习图像领域工作者 🎉 总结链接:              链接中主要是个人工作的总结,每个链接都是一些常用demo,代码直接复制运行即可。包括:                     📌 1.工作中常用深度学习脚本                     📌 2.to

    2024年02月03日
    浏览(42)
  • python | 基础学习(六)pygame游戏开发:飞机大战

    pygame 模块,转为电子游戏设计 $ sudo pip3 install pygame windows: pip install pygame (1)新建项目 飞机大战 (2)新建文件 pygame.py (3)建立游戏窗口: ①pygame的初始化和退出 pygame.init() :导入并初始化所有pygame模块,使用其他模块之前,必须先调用init方法。 pygame.quit() :卸载所有

    2024年02月08日
    浏览(41)
  • 学习 Python 之 Pygame 开发魂斗罗(十五)

    在上次的博客学习 Python 之 Pygame 开发魂斗罗(十四)中,我们加入桥和修复了一些问题,在这篇博客中我加入boss。 下面是图片的素材和源码,我把源码也放到了网盘 链接:https://pan.baidu.com/s/1X7tESkes_O6nbPxfpHD6hQ?pwd=hdly 提取码:hdly 网盘中,代码如下 Teach是博客中发的代码,每

    2024年02月03日
    浏览(35)
  • 学习 Python 之 Pygame 开发魂斗罗(三)

    在上次的博客学习 Python 之 Pygame 开发魂斗罗(二)中,我们完成了角色的创建和更新,现在具体实现一下更新函数中的角色状态函数 下面是图片的素材 链接:https://pan.baidu.com/s/1X7tESkes_O6nbPxfpHD6hQ?pwd=hdly 提取码:hdly 1. 角色站立 在写角色站立函数时,先把其他状态函数注释了

    2024年02月02日
    浏览(39)
  • 学习 Python 之 Pygame 开发魂斗罗(十六)

    在上次的博客学习 Python 之 Pygame 开发魂斗罗(十五)中,我们加入了boss,至此,魂斗罗的主体部分已经完成了,接下来就是在其他地方加入一点敌人,设置进场动画,胜利动画,失败动画和音效了,在这篇博客中,我们加入音效和加入进场动画。 下面是图片的素材和源码,

    2024年02月05日
    浏览(40)
  • 【Pygame 学习笔记】2.绘制图形

    上一篇文章,我们已经创建出如下窗口   这篇文章,我们要优化一下窗口,设置它的窗口标题,并在窗口中绘制一些图案 设置窗口标题,用pygame.display.set_caption()函数,传入一个字符串参数,示例如下: 然后,我们要将窗口填充颜色,我们的窗口是self.screen,所以,用surfac

    2023年04月09日
    浏览(27)
  • 【Python】【OpenCV】绘制外接矩形、外接圆

     外接矩形、外接圆:   1、cv2.boundingRect() Method 和 cv2.minAreaRect() Merhod:前者只寻找和 x、y轴 平行的矩形,后者则可以出现旋转角度。 2、cv2.drawContours() Method:第二个参数接收的是轮廓信息,但是这个轮廓信息需要以 tuple or list or set类型(或者说是iterable)才可以传入。 请注

    2024年02月05日
    浏览(33)
  • cesium学习记录08-鼠标绘制实体(点,线,矩形,圆,多边形)

    上一篇学习了创建实体的一些基础知识,但有时还需要我们使用鼠标进行手动绘制,这一篇就来进行鼠标绘制实体的实现(点,线,矩形,圆,多边形)。 (这里需要掌握三个知识点,一是上一篇中的创建实体、二是鼠标事件、三是回调函数) 既然是鼠标绘制,自然离不开

    2024年02月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包