问题标签 [pygame]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
23064 浏览

python - 运行包含在字符串中的 Python 代码

我正在使用 pygame 和 box2d 编写游戏引擎,并且在角色构建器中,我希望能够编写将在 keydown 事件上执行的代码。

我的计划是在角色生成器中添加一个文本编辑器,让您编写类似于以下内容的代码:

我将文本编辑器的内容作为字符串检索,并且我希望代码在 Character 的这个方法中的一个方法中运行:

最好的方法是什么?

0 投票
1 回答
263 浏览

python - 更新 Pygame 表面的一个方面

我有一个用 python 编写的应用程序,它基本上是一个 etch-a-sketch,你用 WASD 和箭头键移动像素,它会留下痕迹。但是,我想为屏幕上的像素数量添加一个计数器。如何在不更新整个表面和 pwning 像素图的情况下更新计数器?

0 投票
2 回答
1466 浏览

python - 在 python 中更新表面的一部分或透明表面

我有一个用 python 编写的应用程序,它基本上是一个 etch-a-sketch,你用 WASD 和箭头键移动像素,它会留下痕迹。但是,我想为屏幕上的像素数量添加一个计数器。如何在不更新整个表面和 pwning 像素图的情况下更新计数器?

或者,我可以制作一个除文本外完全透明的表面,以便您可以看到下面的绘图表面吗?

0 投票
3 回答
6021 浏览

graphics - 如何避免在 Linux/X11 上使用 pygame 撕裂

我一直在玩 pygame(在 Debian/Lenny 上)。它似乎工作得很好,除了烦人的 blit 撕裂(全屏或窗口模式)。

我正在使用默认的 SDL X11 驱动程序。谷歌搜索表明 X11 不提供垂直同步功能(即使使用FULLSCREEN|DOUBLEBUF|HWSURFACE标志创建的显示)是 SDL 的一个已知问题,我应该改用“dga”驱动程序。

然而,运行

引发 pygame 初始化

(尽管xdpyinfo显示了 XFree86-DGA 扩展)。

那么:获得无撕裂垂直同步翻转的诀窍是什么?通过让这个 dga 工作或其他机制工作?

0 投票
4 回答
477 浏览

python - 游戏设计 - 处理奖金/鸭子打字 - python

我目前在我的游戏设计中面临一个设计问题,并不可怕,但它让我很困扰,所以我想问问其他人的意见:-)

我目前正在试验 pygame,我开发了一个小型太空射击游戏,现在我想处理一些奖金。

现在我有一个抽象类 Bonus 从中派生当前实现的所有奖金:一个“健康奖金”,它给玩家一些健康,一个“死亡奖金”,它把玩家的健康降低到 1。

在我的游戏循环中,这是我所做的(大致):

在我告诉玩家使用奖金之后

到目前为止一切都还好,但我想添加一个“炸弹奖励”,当玩家射击时会爆炸并杀死周围的敌人。

这个“奖金”实现了我的抽象类 Bonus 的“use(target)”方法,但我觉得在玩家的奖金列表中添加这样的奖金有点糟糕,因为它们之间不应该有任何关系!

奖金背后的概念是,这是“对某事做某事的事情”,以前是我的玩家班级的目标,但现在还不清楚......当然,而不是在检测到哪些奖金在哪里之后调用 player.useBonuses()拍摄我可以测试类型(使用 isinstance),例如奖金,但在我读过所有关于鸭子打字的讨论之后,为什么它是 pythonic 方式我想知道如何管理我的奖金问题?

感谢您阅读本文,希望你们能帮助我!

问候

0 投票
2 回答
2611 浏览

python - 渲染轮廓字体的好方法是什么?

我正在用 pygame 在 python 中编写游戏,需要将文本渲染到屏幕上。

我想用带有轮廓的一种颜色渲染此文本,这样我就不必担心文本显示在哪种背景上。

pygame.font 似乎不支持直接做这种事情,我想知道是否有人有任何好的解决方案来实现这一点?

0 投票
5 回答
1999 浏览

python - 用python模拟处理?

我正在寻找一个类似于处理的基本程序动画框架,除了在 python 中。也就是说,允许像素操作的东西,具有基本的绘图/颜色基元,并且面向动画。pygame 几乎是最好的选择还是有其他选择?

0 投票
2 回答
5580 浏览

python - 创建棋盘游戏模拟器(Python?)(Pygame?)

我决定开始编写我最喜欢的一个旧程序。我以前从未做过游戏,也从未用 Python 做过大型项目。

该游戏是旧的阿瓦隆山游戏俄罗斯战役

我一直在玩 PyGame 并且想知道是否有理由不尝试使用 PyGame 来做这件事并追求其他一些引擎/语言。

使用 Pygame 构建它有什么缺点?

我并不担心人工智能,主要是我只想让游戏的最少两个玩家版本启动并运行。奖金将是保存游戏状态以及通过网络进行游戏的能力。

非常感谢启动这个项目的注意事项。

0 投票
2 回答
923 浏览

python - Pygame 和 blitting:白底白字 = 灰色?

我正在使用 pygame(1.9.0rc3,虽然这也发生在 1.8.1)来创建热图。为了构建热图,我使用了一个小的 24 位 11x11px 点 PNG 图像,具有白色背景和一个非常低不透明度的灰色点,它正好停在边缘:

点图 http://img442.imageshack.us/img442/465/dot.png

点周围的区域是完美的白色,#ffffff,应该是这样。但是,当我使用 pygame 使用 BLEND_MULT 多次将图像blit 到新表面时,会出现一个灰色方块,好像点背景不是完美的白色,这没有意义。

以下代码以及包含的图像可以重现这一点:

运行代码时,您将获得以下图像:

混合后生成的图像 http://img263.imageshack.us/img263/4568/result.png

发生这种情况有原因吗?我该如何解决它?

0 投票
3 回答
3912 浏览

python - PyOpenGL + Pygame 在全屏模式下限制为 60 FPS

我目前正在开发一个用 pygame 编写的游戏引擎,我想添加 OpenGL 支持。

我写了一个测试,看看如何让 pygame 和 OpenGL 一起工作,当它在窗口模式下运行时,它的运行速度在 150 到 200 fps 之间。当我全屏运行它时(我所做的只是在设置窗口时添加 FULLSCREEN 标志),它下降到 60 fps。我添加了更多绘图功能,看看它是否只是性能大幅下降,但它始终以 60 fps 运行。

我需要做一些额外的事情来告诉 OpenGL 它正在全屏运行还是这是 OpenGL 的限制?

(我在 Windows XP 中运行)