在 pygame 中渲染文本会导致延迟

2023-12-24

I have write我的函数模块中的函数如下所示

def write(size, writing, color, x,  y):
    font = pygame.font.SysFont("corbel", size)
    text = font.render(writing,  True, color)
    D.blit(text, (x, y))

我将其导入到我的主模块中,并在主模块中创建了一个函数,如下所示

def print_stats():
    write(30, f"Red player's hp {player2.hp}", (200, 50, 50),10, 10)
    write(30, f"Green player's hp {player1.hp}", (50, 200, 50),10, 60)

只要我不放print_stats()在主循环中,游戏运行得非常好,但是,一旦我尝试运行这个函数,它就会严重降低 FPS。我在代码中没有看到任何可能导致延迟的内容,我做错了什么?谢谢

编辑:不知道这是否是相关的,但我忘了提及我把pygame.init()在我导入的所有模块中,因为这是我第一次使用模块,我不确定。


避免在每个帧中创建字体对象。
根据应用程序循环之前的大小创建字体。例如:

font30 = pygame.font.SysFont("corbel", 30)  
def write(font, writing, color, x, y):
    text = font.render(writing,  True, color)
    D.blit(text, (x, y))
def print_stats():
    write(font30, f"Red player's hp {player2.hp}", (200, 50, 50), 10, 10)
    write(font30; f"Green player's hp {player1.hp}", (50, 200, 50), 10, 60)

这并不能解决文本在每一帧中渲染的问题。如果仍然滞后,那么您必须渲染一次文本表面,当player1.hp分别player2.hp被改变了。例如:

class Player:
    def __init__(self, color, name):
        self.color = color
        self.name = name
        # [...]

    def ChangeHp(self, val):
        self.hp += val
        self.hptext = font30.render(f"{self.name} player's hp {self.hp}", True, self.color)
D.blit(player1.hptext, (10, 60))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 pygame 中渲染文本会导致延迟 的相关文章

  • 是否有解决方法可以通过 CoinGecko API 安全检查?

    我在工作中运行我的代码 一切都很顺利 但在不同的网络 家庭 WiFi 上 我不断收到403访问时出错CoinGecko V3 API https www coingecko com api documentations v3 可以观察到 在
  • 使用 python requests 模块时出现 HTTP 503 错误

    我正在尝试发出 HTTP 请求 但当前可以从 Firefox 浏览器访问的网站响应 503 错误 代码本身非常简单 在网上搜索一番后我添加了user Agent请求参数 但也没有帮助 有人能解释一下如何消除这个 503 错误吗 顺便说一句
  • 如何用python脚本控制TP LINK路由器

    我想知道是否有一个工具可以让我连接到路由器并关闭它 然后从 python 脚本重新启动它 我知道如果我写 import os os system ssh l root 192 168 2 1 我可以通过 python 连接到我的路由器 但是
  • 将html数据解析成python列表进行操作

    我正在尝试读取 html 网站并提取其数据 例如 我想查看公司过去 5 年的 EPS 每股收益 基本上 我可以读入它 并且可以使用 BeautifulSoup 或 html2text 创建一个巨大的文本块 然后我想搜索该文件 我一直在使用
  • Pandas 日期时间格式

    是否可以用零后缀表示 pd to datetime 似乎零被删除了 print pd to datetime 2000 07 26 14 21 00 00000 format Y m d H M S f 结果是 2000 07 26 14
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • 您可以格式化 pandas 整数以进行显示,例如浮点数的“pd.options.display.float_format”?

    我见过this https stackoverflow com questions 18404946 py pandas formatdataframe and this https stackoverflow com questions
  • 为什么 PyYAML 花费这么多时间来解析 YAML 文件?

    我正在解析一个大约 6500 行的 YAML 文件 格式如下 foo1 bar1 blah name john age 123 metadata whatever1 whatever whatever2 whatever stuff thi
  • Python,将函数的输出重定向到文件中

    我正在尝试将函数的输出存储到Python中的文件中 我想做的是这样的 def test print This is a Test file open Log a file write test file close 但是当我这样做时 我收到
  • 如何使用python在一个文件中写入多行

    如果我知道要写多少行 我就知道如何将多行写入一个文件 但是 当我想写多行时 问题就出现了 但是 我不知道它们会是多少 我正在开发一个应用程序 它从网站上抓取并将结果的链接存储在文本文件中 但是 我们不知道它会回复多少行 我的代码现在如下 r
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • Python3 在 DirectX 游戏中移动鼠标

    我正在尝试构建一个在 DirectX 游戏中执行一些操作的脚本 除了移动鼠标之外 我一切都正常 是否有任何可用的模块可以移动鼠标 适用于 Windows python 3 Thanks I used pynput https pypi or
  • 使用特定颜色和抖动在箱形图上绘制数据点

    我有一个plotly graph objects Box图 我显示了箱形 图中的所有点 我需要根据数据的属性为标记着色 如下所示 我还想抖动这些点 下面未显示 Using Box我可以绘制点并抖动它们 但我不认为我可以给它们着色 fig a
  • Pandas 将多行列数据帧转换为单行多列数据帧

    我的数据框如下 code df Car measurements Before After amb temp 30 268212 26 627491 engine temp 41 812730 39 254255 engine eff 15
  • 根据列 value_counts 过滤数据框(pandas)

    我是第一次尝试熊猫 我有一个包含两列的数据框 user id and string 每个 user id 可能有多个字符串 因此会多次出现在数据帧中 我想从中导出另一个数据框 一个只有那些user ids列出至少有 2 个或更多string
  • Python:XML 内所有标签名称中的字符串替换(将连字符替换为下划线)

    我有一个格式不太好的 XML 标签名称内有连字符 我想用下划线替换它 以便能够与 lxml objectify 一起使用 我想替换所有标签名称 包括嵌套的子标签 示例 XML
  • python import inside函数隐藏现有变量

    我在我正在处理的多子模块项目中遇到了一个奇怪的 UnboundLocalError 分配之前引用的局部变量 问题 并将其精简为这个片段 使用标准库中的日志记录模块 import logging def foo logging info fo
  • 实现 XGboost 自定义目标函数

    我正在尝试使用 XGboost 实现自定义目标函数 在 R 中 但我也使用 python 所以有关 python 的任何反馈也很好 我创建了一个返回梯度和粗麻布的函数 它工作正常 但是当我尝试运行 xgb train 时它不起作用 然后 我
  • 如何计算Python中字典中最常见的前10个值

    我对 python 和一般编程都很陌生 所以请友善 我正在尝试分析包含音乐信息的 csv 文件并返回最常听的前 n 个乐队 从下面的代码中 每听一首歌曲都是一个列表中的字典条目 格式如下 album Exile on Main Street

随机推荐

  • Chrome 中的 Javascript 调试 - 对象名称?

    不知道 下图中圈出的东西 叫什么 使我的问题很难找到答案 下图中我圈出的东西叫什么名字 实际上是什么 myObject myFunction 是无关紧要的 我希望能够将其写到控制台 我尝试过以下方法 console log sp outpu
  • Spring Boot 2 未序列化 LocalDateTime

    我最近尝试使用 spring boot 2 实现一个微服务 现在 每当我尝试返回一个包含java time LocalDateTime从我的 REST 服务中 LocalDateTime 被序列化为整数数组 就像这样 id 5bf1425f
  • JDBC SQL 数据库被锁定?

    我正在编写一个使用本地 SQL 数据库来存储数据的程序 我正在使用这里找到的驱动程序 https bitbucket org xerial sqlite jdbc https bitbucket org xerial sqlite jdbc
  • 在 Web 项目中使用 SOLR 的最佳方法是什么?

    好吧 我对 SOLR 和 Lucene 完全陌生 但已经让 Solr 在 Tomcat 6 x 下开箱即用地运行 并且刚刚浏览了一些基本的 Wiki 条目 我有几个问题 也需要一些建议 Solr 可以索引文件 XML CSV 中的数据 也可
  • Apple Watch 应用程序可以与 Apple TV 交互吗?

    我正在寻找解决方案 甚至是关于在之间共享数据 发送信号等的可能性的线索Apple Watch应用程序和Apple TV app 就我而言 我有一个应用程序可以使用以下方法进行一些计算Apple Watch我希望这些计算能够对Apple TV
  • 如何让乘客配置重新启动应用程序正常工作?

    Ubuntu 14 04 上的 Rails 4 1 带有 rbenv 和 ruby 2 2 1 将 capistrano 与 capistrano passenger gem 一起使用 但最后重新启动失败 INFO 8213c63a Run
  • 在Python中向信号添加噪声

    我想向我在 Python 中模拟的 100 个 bin 信号添加一些随机噪声 使其更加真实 在基本层面上 我的第一个想法是逐个容器 生成某个范围内的随机数 然后从信号中添加或减去该数字 我希望 因为这是Python 可能有一种更智能的方法通
  • XInitThreads() 的缺点是什么?

    I know XInitThreads 将允许我从主线程以外的线程调用 X 服务器 如果我想使 Xlib 中的并发线程支持是必要的使用 Qt 从辅助线程调用 OpenGL http doc qt digia com qq qq06 glim
  • Restful 是仅适用于 Web 服务还是同时适用于 Web 服务和网页?

    我读了很多 PHP 的 Restful 教程 我不想深入探讨为什么我不使用RoR 这是因为团队对PHP更加熟悉 因为我们计划未来扩展 API 所以我了解到实现 Restful Web 服务非常重要 我看过诸如此类的教程 http www g
  • 在什么情况下,c++析构函数不会被调用? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • tools.jar 似乎不在 Windows 8 上的 Android Studio 类路径中

    我安装了 Android Studio 但它给了我错误 我需要安装 JDK 但 JDK 已经安装了 然后我意识到它要求安装64位版本的JDK 无论如何 我刚刚下载了最新的 JDK 64 位版本并在环境变量中设置了以下内容 但 Android
  • 如何让 docker-machine 在特定位置创建虚拟机

    我的开发机器是一台笔记本电脑 配有小型 SSD 和巨大的外部磁盘 理想情况下 我希望 docker machine 使用外部驱动器 而不是填满我的内部磁盘 我知道我可以用安装等方式破解它 但是有没有办法让 docker machine 命令
  • Drupal Android 应用程序登录持久性

    我已经成功设置了一个 Android 应用程序 可以登录到我的 drupal 网站 我的问题是登录的用户会话不会持续很长时间 该网站清楚地显示我的用户已登录该网站 但在一个小时左右的时间内 该用户不再在该网站上显示为活动状态 我猜测是因为我
  • 在fabricJS 中如何使用transformMatrix 变换点?

    我正在尝试放置点 通过fabric Circle 在一个角落fabric Polygon 用户可以移动 缩放或旋转多边形 但是 每次修改后我都希望获得多边形的新坐标来将我的圆放置在那里 在深入研究这个主题时我发现this http www
  • ASP .NET MVC 中 web.config 中的 TargetFramework 设置有何含义?

    我们的 ASP NET MVC 5 Web 应用程序之一具有以下 web config 设置
  • 如何阅读XMI?

    我需要读取序列化为 XMI 的 UML 图 是否有任何库可以让我方便地阅读 UML XMI 方便我的意思是有一些方法来迭代模型中的类 包 方法 属性测试等 我尝试了 EMF 但找不到任何教程来展示如何导入包含 UML 的 XMI 我也发现了
  • Android:如何将整个ImageView转换为Bitmap?

    我的应用程序显示不同比例的图像 并在 centerInside imageView 内调整大小 我需要的是从 ImageView 创建位图 包括背景 在本例中为黑色 例如 我的设备屏幕为 320x480 全屏 imageView 的图像大小
  • 使用字符串参数调用 Web api

    我有一个 Web api 其中有 2 种方法 一种没有参数 两种具有不同类型的参数 字符串和整数 调用字符串方法时它不起作用 我在这里缺少什么 public class MyControllerController ApiControlle
  • 来自对象库和 DLL 导出的 CMake 共享库

    背景 我使用 cmake 构建一个开源库 https github com simulton gpds 该项目设置为执行以下操作 构建一个cmakeOBJECT图书馆名为gpds objs Build a STATIC图书馆名为gpds s
  • 在 pygame 中渲染文本会导致延迟

    I have write我的函数模块中的函数如下所示 def write size writing color x y font pygame font SysFont corbel size text font render writin