- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Pygame 开发一个小游戏(作为业余爱好)。在此之前,我从未从事过图形界面工作,并且遇到了一些性能问题。即使在选项菜单中,FPS 似乎也被限制在 110 左右,这听起来可能并没有那么糟糕,但考虑到它只是一个带有一些文本的黑屏,FPS 肯定应该更高。这是其中一个文本框的代码:
font = pygame.font.SysFont("Comic Sans MS", 180)
color = (0,60,20)
screen.blit(font.render("Title", False, color), (480,0))
选项菜单只不过是大约 15 个文本框,这已经导致了 FPS 问题。我渲染或位图传输文本的方式有问题吗?
最佳答案
不要在每个帧中创建pygame.font.Font
对象,并且不要在每个帧中渲染文本。在程序开始时或在类的构造函数 (__init__
) 中创建一次文本 Surface。只需在每个帧中blit
文本Surface即可:
初始化时:
font = pygame.font.SysFont("Comic Sans MS", 180)
color = (0,60,20)
text_surface = font.render("Title", False, color)
每帧一次:
screen.blit(text_surface, (480,0))
如果文本是动态的,它甚至无法预渲染。然而,最耗时的是创建pygame.font
目的。至少,您应该避免在每个框架中创建字体。
在典型的应用程序中,您不需要字体和字体大小的所有排列。您只需要几个不同的 font
对象。在应用程序开始时创建多种字体,并在渲染文本时使用它们。例如:
fontComic40 = pygame.font.SysFont("Comic Sans MS", 40)
fontComic180 = pygame.font.SysFont("Comic Sans MS", 180)
# [...]
关于python - 如何在 pygame 中渲染/blit 文本以获得良好的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64563528/
嗨,我正在考虑开发一种文件传输程序,想知道我是否想要尽可能好的加密,我应该使用什么? 我会用 C# 开发它,所以我可以访问 .net 库 :P在我的 usb 上有一个证书来访问服务器是没有问题的,如果
我创建的这个计算两个数组的交集是线性的方法的复杂度(在良好、平均、最差的情况下)? O(n) public void getInt(int[] a,int[] b){ int i=0; int
我已经能够使用 RTCPeerConnection.getStats() API 获得 WebRTC 音频调用的各种统计信息(抖动、RTT、丢包等)。 我需要将整体通话质量评为优秀、良好、一般或差。
基本问题: 如果我正在讲述/修改数据,我应该通过索引硬编码索引访问文件的元素,即 targetFile.getElement(5);通过硬编码标识符(内部翻译成索引),即 target.getElem
在 Linux 上,我想知道要调用什么“C”API 来获取每个 CPU 的统计信息。 我知道并且可以从我的应用程序中读取 /proc/loadavg,但这是系统范围的负载平均值,而不是每个 CPU 的
在客户端浏览器中使用 fetch api,GET 或 POST 没有问题,但 fetch 和 DELETE 有问题。它似乎将 DELETE 请求方法更改为 OPTIONS。 大多数研究表明是一个cor
我是一名优秀的程序员,十分优秀!