如何将文本添加到 pygame 矩形中

2023-11-24

我已经在 pygame 中绘制了一个矩形,但是我需要能够将“Hello”之类的文本放入该矩形中。我怎样才能做到这一点? (如果您也能解释一下,将不胜感激。谢谢)

这是我的代码:

import pygame
import sys
from pygame.locals import *

white = (255,255,255)
black = (0,0,0)


class Pane(object):
    def __init__(self):

        pygame.init()
        pygame.display.set_caption('Box Test')
        self.screen = pygame.display.set_mode((600,400), 0, 32)
        self.screen.fill((white))
        pygame.display.update()

    def addRect(self):
        self.rect = pygame.draw.rect(self.screen, (black), (175, 75, 200, 100), 2)
        pygame.display.update()

    def addText(self):
        #This is where I want to get the text from

if __name__ == '__main__':
    Pan3 = Pane()
    Pan3.addRect()
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit(); sys.exit();

感谢您的时间。


你首先必须创建一个Font (or SysFont) 目的。呼叫render该对象上的方法将返回Surface使用给定的文本,您可以将其块传输到屏幕或任何其他地方Surface.

import pygame
import sys
from pygame.locals import *

white = (255,255,255)
black = (0,0,0)


class Pane(object):
    def __init__(self):
        pygame.init()
        self.font = pygame.font.SysFont('Arial', 25)
        pygame.display.set_caption('Box Test')
        self.screen = pygame.display.set_mode((600,400), 0, 32)
        self.screen.fill((white))
        pygame.display.update()


    def addRect(self):
        self.rect = pygame.draw.rect(self.screen, (black), (175, 75, 200, 100), 2)
        pygame.display.update()

    def addText(self):
        self.screen.blit(self.font.render('Hello!', True, (255,0,0)), (200, 100))
        pygame.display.update()

if __name__ == '__main__':
    Pan3 = Pane()
    Pan3.addRect()
    Pan3.addText()
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit(); sys.exit();

enter image description here

请注意,您的代码似乎有点奇怪,因为通常您在主循环中完成所有绘图,而不是事先进行。另外,当您在程序中大量使用文本时,请考虑缓存以下结果Font.render,因为这是一个非常慢的操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将文本添加到 pygame 矩形中 的相关文章

  • 安装tensorflow的正确命令

    当尝试在 Anaconda 上安装 Tensorflow 时 我尝试了两种类型的命令 conda install tensorflow gpu工作得很好 然而 当尝试conda install c anaconda tensorflow g
  • 如何在 QTableView 标题中单击鼠标右键单击上下文菜单?

    下面的示例代码 很大程度上受到here http www saltycrane com blog 2007 12 pyqt 43 qtableview qabstracttablemodel 有一个右键单击上下文菜单 当用户单击表中的单元格
  • Python Numpy Reshape错误[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在尝试重塑 3D numpy 数组时遇到一个奇怪的错误 数组 x 的形状为 6 10 300 我想将其重塑为 6 3000 我正
  • 如何使用 python、openCV 计算图像中的行数

    我想数纸张 所以我正在考虑使用线条检测 我尝试过一些方法 例如Canny HoughLines and FLD 但我只得到处理过的照片 我不知道如何计算 有一些小线段就是我们想要的线 我用过len lines or len contours
  • Python函数组成

    我尝试使用良好的语法来实现函数组合 这就是我所得到的 from functools import partial class compfunc partial def lshift self y f lambda args kwargs s
  • 如何调试 numpy 掩码

    这个问题与this one https stackoverflow com q 73672739 11004423 我有一个正在尝试矢量化的函数 这是原来的函数 def aspect good angle float planet1 goo
  • 从字典中绘制直方图

    我创建了一个dictionary计算 a 中出现的次数list每个键的内容 我现在想绘制其内容的直方图 这是我想要绘制的字典的内容 1 27 34 1 3 72 4 62 5 33 6 36 7 20 8 12 9 9 10 6 11 5
  • Python sys.modules 包含尚未导入的模块

    我试图了解加载的模块与导入的模块之间的区别 如果有的话 我正在使用 Python 2 7 3 并且只是从命令行运行 Python 如果我执行 import sys sys modules 我得到一个列表 其中包括os 例如 文档说sys m
  • 无法在我的程序中使用 matplotlib 函数

    我正在 Windows 10 中运行 Anaconda 安装 conda 版本 4 3 8 这是我尝试在 python 命令行中运行的代码 import matplotlib pyplot as plt x 1 2 3 4 y 5 6 7
  • 如何将 Pyspark Dataframe 标题设置到另一行?

    我有一个如下所示的数据框 col1 col2 col3 id name val 1 a01 X 2 a02 Y 我需要从中创建一个新的数据框 使用 row 1 作为新的列标题并忽略或删除 col1 col2 等行 新表应如下所示 id na
  • Bokeh 中单独的节点和边缘悬停工具?

    我正在尝试为 Bokeh 中的节点和边缘获取单独的悬停工具提示 但未能使其正常工作 有人可以指出我做错了什么吗 我相信代码应该如下所示 from bokeh io import show output notebook from bokeh
  • django 中的身份验证方法返回 None

    你好 我在 django 中做了一个简单的注册和登录页面 当想要登录时 登录视图中的身份验证方法不返回任何内容 我的身份验证应用程序 模型 py from django db import models from django contri
  • 如何处理 Tkinter 中的窗口关闭事件?

    如何在 Python Tkinter 程序中处理窗口关闭事件 用户单击 X 按钮 Tkinter 支持一种称为协议处理程序 http web archive org web 20201111215134 http effbot org tk
  • 无法将matplotlib安装到pycharm

    我最近开始使用Python速成课程学习Python编程 我陷入困境 因为我无法让 matplotlib 在 pycharm 中工作 我已经安装了pip 我已经通过命令提示符使用 pip 安装了 matplotlib 现在 当我打开 pych
  • 更改用作函数全局作用域的字典

    我想做一个 purePython 的装饰器 其中一部分是能够有选择地禁止访问函数的全局范围 有没有一种方法可以以编程方式更改哪个字典事物充当函数的全局 外部作用域 因此 例如在下面我希望能够拦截对f in h并抛出错误 但我想允许访问g因为
  • 使用 Sphinx 时,如何记录没有文档字符串的成员?

    我正在为我发布的包编写文档 我发现您的文档越全面 人们就越容易找到您的包来使用 废话 实际上 我在充满爱心地编写代码的所有功能和细节方面获得了很多乐趣 然而 我对如何为类级变量编写与 Sphinx 兼容的文档感到完全困惑 特别是 我有一些e
  • 避免“散点/点/蜂群”图中的数据点重叠

    使用绘制点图时matplotlib 我想偏移重叠的数据点以使它们全部可见 例如 如果我有 CategoryA 0 0 3 0 5 CategoryB 5 10 5 5 10 我想要每一个CategoryA 0 数据点并排设置 而不是彼此重叠
  • 为什么我的 PyGame 应用程序根本不运行?

    我有一个简单的 Pygame 程序 usr bin env python import pygame from pygame locals import pygame init win pygame display set mode 400
  • 当训练和测试的特征数量不同时,如何处理生产环境中的One-Hot Encoding?

    在做某些实验时 我们通常在 70 上进行训练 在 33 上进行测试 但是 当您的模型投入生产时会发生什么 可能会发生以下情况 训练集 Ser Type Of Car 1 Hatchback 2 Sedan 3 Coupe 4 SUV 经过
  • 防止 Ada DLL 中的名称损坏

    有没有一种简单的方法可以防止在创建 Ada DLL 时 Ada 名称被破坏 这是我的 adb 代码 with Ada Text IO package body testDLL is procedure Print Call is begin

随机推荐

  • 如何将 JSON 数组与 Alamofire 参数结合使用?

    我在构建参数时遇到了一些麻烦 以便我们的服务器 API 能够将其读取为有效的 JSON Alamofire 在 swift 语言中使用这样的参数 let parameters String AnyObject string str para
  • 如何使用 node.js 从(大)文件中进行随机访问读取?

    我是否遗漏了一些东西 或者node js的标准文件I O模块是否缺少常用文件随机访问方法的类似物 seek fseek tell ftell 如果没有这些 如何从节点中的大文件中读取随机固定大小的记录 tell不是 但很少有人不知道自己在文
  • 如何使用 Perl 解析相对日期?

    我很想知道 Perl 中是否有一个模块可以解析 人类格式 日期 我的意思是 明天 星期二 下周 1 小时前 我对 CPAN 的研究表明不存在这样的模块 那么您将如何创建一个呢 NLP 在这方面已经超出了极限 日期 马尼普正是这样做的 这是一
  • 如何在aws cdk中导入现有的ec2实例

    有谁知道如何使用 aws CDK 在 aws 帐户中导入现有的 ec2 实例 我在网上搜索 也浏览了文档 没有运气 所有帮助将不胜感激 您必须创建一个具有实现的自定义静态方法 这与 RDS 的实现类似 https docs aws amaz
  • WordPress 数据库错误 MySQL 服务器已停止查询

    我经常收到此错误 以至于 php error 日志文件每 2 秒增加 1MB 而且网站速度很慢 我尝试将此行添加到 wp db php this gt query set session wait timeout 600 但这没有帮助 We
  • R:ggplot更好的渐变颜色

    I am using ggplot to plot Proportional Stacked Bar plot And the Plot I am getting is something like this 这是我正在使用的自写函数 df
  • 将已安装的 Cordova 插件保存到 config.xml

    我已经使用以下语法安装了所有 cordova 插件 cordova plugin add
  • 计算python字典中某个值出现的次数?

    如果我有这样的东西 D a 97 c 0 b 0 e 94 r 97 g 0 例如 如果我想计算 0 作为值出现的次数 而不必迭代整个列表 这是否可能以及如何实现 正如中提到的这个答案 using operator countOf 是可行的
  • Dart 有小部件库吗?

    一年后查看 Dart 我没有看到任何全面的小部件库 我在 GitHub 上看到了 KevMoo 的 Widget Dart 项目 但没有一个小部件实际上可以工作 我目前在我的项目中使用 AngularJS 并且拥有一组很棒的库 例如 Boo
  • 如何为一张纸设置vba代码?

    我目前正试图构建一个运行 sumifs 宏的按钮 我正在尝试构建按钮Sheet1并让 sumif 执行Sheet2 我目前拥有的是 Option Explicit Sub Sumifs Dim Sht2 As Worksheet Dim E
  • 类成员函数模板可以是虚拟的吗?

    我听说C 类成员函数模板不能是虚拟的 这是真的 如果它们可以是虚拟的 那么使用这种功能的场景示例是什么 模板都是关于编译器生成代码的编译时 虚函数都是关于运行时系统确定要调用哪个函数的run time 一旦运行时系统发现需要调用模板化虚拟函
  • 有没有办法为 JUnit 测试用例在内存中运行 MySQL?

    我只是想为访问 MySQL DB 的服务添加测试用例 并且我想重新创建整个架构 对于某些场景 也只需使用 MySQL 转储文件以及每个测试用例所需的数据 我环顾四周 发现有些人使用 SQLite H2 和其他人来做到这一点 但我只是想知道是
  • NPGSQL 与 .netCore 如何登录到架构而不仅仅是数据库

    这是我的NPGSQL连接字符串 ConnectionStrings DataAccessPostgreSqlProvider User ID damienbod Password 1234 Host localhost Port 5432
  • UICollectionView 的动态单元格宽度取决于标签宽度

    我有一个 UICollectionView 它从可重复使用的单元格加载单元格 其中包含标签 数组提供该标签的内容 我可以使用 sizeToFit 根据内容宽度轻松调整标签宽度 但我无法使细胞适合标签 这是代码 void viewDidLoa
  • 如何从内容页访问母版页控件

    我有一个母版页 其中包含状态消息的标签 我需要设置不同 aspx 页面的状态文本 如何从内容页面完成此操作 public partial class Site System Web UI MasterPage public string S
  • PHP:5.2 中需要 json_encode() 5.3 功能

    长话短说 客户端的托管使用的是 php 5 2 5 我迫切需要使用 JSON FORCE OBJECT 选项json encode 5 3 附带的 有谁知道用于此目的的等效项吗 请指出来 在编码之前将其转换为对象在 5 2 5 上对我有用
  • Python 等价于 System('PAUSE')

    我一直在用 python 3 3 编写一个基本计算器 我希望能够在命令窗口中运行它 但当我读到最后时 在我有时间查看最终答案之前它就关闭了窗口 所以我想知道是否有一个相当于 c System PAUSE 命令来告诉它在用户准备好之前不要再继
  • 从另一个项目 ID 访问现有云 SQL 实例

    我已经在 PHP 项目中创建了一个云 sql 实例 并成功完成了计费过程 该项目有效 现在 我想从另一个项目访问我的数据库 但这次是在带有 servlet 的 Java SDK 项目中 使用中的示例https developers goog
  • scanf() 的宽度说明符 - 要使用的字符长度在编译时不固定,仅在运行时确定。如何使其可变?

    我想将字段宽度说明符应用于 scanf 操作来读取字符串 因为明确指定了要读取 使用的字符数 而不是使scanf 容易导致缓冲区溢出的操作 以及目的地参数指向已经匹配的char数组 其元素的大小正好相同 字段宽度的所需值必须为 1 0 这个
  • 如何将文本添加到 pygame 矩形中

    我已经在 pygame 中绘制了一个矩形 但是我需要能够将 Hello 之类的文本放入该矩形中 我怎样才能做到这一点 如果您也能解释一下 将不胜感激 谢谢 这是我的代码 import pygame import sys from pygam