问题标签 [pyglet]
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.
python - 使用 pyglet 切换场景
任何人都可以推荐如何在 pyglet 中的场景之间切换。IE
- 菜单 > 游戏
- 游戏 > 菜单
- 菜单 > 帮助
- 等
我能想到的唯一方法是使用不同的窗口,我很确定这将是完全错误的方法。或者通过重载窗口的所有事件函数。
对不起,如果我没有说清楚,但任何帮助将不胜感激
python - Win32 事件循环似乎是程序瓶颈
我正在使用 Pyglet 用 Python 制作游戏。我刚刚完成了显示部分,并且遇到了速度问题。像一个好人一样,我进行了分析,并得到了以下信息:(排除了无趣的位;目前,当我按下带有随机洋红色和白色的箭头键时,它只是重新绘制屏幕)
几乎所有总时间小于 0.5 秒的东西都被删除了。主要是不会有问题的东西。
这是我敲键盘半分钟的结果。在大多数情况下,我每秒可以获得 2 或 3 次屏幕变化。我个人希望尽可能快地敲击键盘。哎呀,我的目标是50-60fps。
win32 运行 10 秒没有花在子功能上,这让我担心。它可能是空闲时间(即使有一个 pyglet 空闲),但这不会花在绘图上吗?
我认为慢的部分实际上是快的;窗口 SetTile 部分。为了处理瓷砖,我有一个 2D 精灵列表,它们在屏幕上代表它们并简单地改变图像。我不认为这是一个问题。
我看到的另一个潜在问题是我的更新——每次调用它时我都必须遍历大约 2400 个图块。然而,这似乎并没有那么糟糕。90 次按键仅需 0.7 秒。
我开始怀疑这是否表明 Python 对我的需求来说太慢了。再说一次,它不应该是。这不是我正在做的计算量太大的事情。
tl; dr Python 中的 win32 事件循环是我的瓶颈吗,这是什么意思?如果没有,我可能在哪里失去了速度?
如果需要,可以使用代码。我假设它是 pyglet 使用的 Pywin32。
python - Pyglet中使用update方法控制精灵动画
朋友们,我将非常感谢任何答案,提前感谢,这是我的问题:
在 pyglet 中,这是在屏幕中更新精灵的基本代码:
如果按下右键,这将导致精灵以每秒 10 像素的速度从点 x 向右移动。
但是让我们假设我需要在一个变量处从 X1 点精确移动到 X2 点,并在 X2 点精确停止,我该怎么做?
想象一下:
x_start=20
x_finish=40
我想从 x=20 移动到 x=40,并在 x=40 处停止。每秒像素数可以是任何值,在此示例中假设为 10 个像素。
如果我使用通常的代码,我可以这样做:
这是行不通的,因为pixel*dt不等于10,dt是不规则的并且是浮点数(1/60=0.01, 0.01*10= 0.1,并且 dt 也是不规则的,所以有时是 0.01,其他是 0.019,其他0.021...等),所以每次更新执行 sprite.x 进化都是这样的 --> 10, 10,1, 10,24, 10,38, 10.51...等
所以,if sprite.x != 40:永远不会起作用(因为 sprite.x 总是一个浮点数,几乎不会是 40),我的播放器永远不会停止。
我知道这个问题有一个非常简单的解决方案,但我不知道,我很绝望。我正在pyglet开始我的旅程,所以我在这个阶段非常无知,需要帮助找到解决方案,我找不到出路。
是否有其他技术可以在不使用sprite.x += pixel*dt的情况下每帧更新一个精灵?还有其他解决方案吗?
非常非常感谢,来自葡萄牙的问候
cross-platform - 2D游戏的开发框架?
我想开始研究我拥有的一个简单的游戏概念,作为一个业余项目/爱好/学习经验。
Pygames 或 Pyglet 立即浮现在脑海中,但看起来它们并没有被积极开发。或者也许他们是,但非常缓慢。
我想要一种高级编程语言、多操作系统支持、2D 焦点(或者无论如何都适合 2D 的东西)和积极的开发。我有哪些选择?
python - 如何在桌面上绘制 PyOpengl 或 pyglet?
我正在编写一个应用程序,它希望使用 OpenGL 在 Windows 7 桌面上绘制基本的多边形和椭圆。根据this previous question,这可能是通过获取桌面的窗口句柄,我知道该怎么做。 在没有窗口的windows桌面上绘制OpenGL
但是,我有两个问题:
您实际上在哪里告诉 OpenGL 要绘制到哪个窗口?我一直在查看示例 1,但我根本无法弄清楚它到底在哪里通过 openGL 的 hwnd。我是否给 openGL 一个窗口句柄或设备上下文?
是否可以使用 PyOpenGL 或 Pyglet 做到这一点?还是我必须用 C 编写它,然后将代码包装在 ctypes 中?
pyglet - pyglet 中找不到资源异常
我正在使用 Python 2.6.6 和 pyglet 1.1.4。在我的“Erosion”文件夹中,我有“Erosion.py”和一个名为“Images”的文件夹。在图像内部,有 .png 图像。一张图片被命名为“Guard.png”。
在“Erosion.py”中有一段是这样的:
当我运行它时,我得到了
我尝试将路径更改为 ['./Images'] 和 ['../Images']。我还尝试删除路径和重新索引调用并将 Erosion.py 和 Guard.png 放在同一个文件夹中。
python - 一起使用pyglet和pyopengl的问题
我有以下代码:
当我使用 pyglet 的 opengl 绑定时,它按预期工作。但是,当我使用 pyopengl 时,我只看到一团糟。
python - pyglet 中的按钮小部件在哪里?
我正在检查 pyglet,但是,有趣的是,我找不到如何做一个简单的按钮!
所以
创建标准按钮的标准方法是什么?
是否有创建消息框的标准方法?打开/保存对话框?
还是我错过了 pyglet 的重点?它不是另一个用于创建(也)表单、窗口、按钮、文本、标准小部件等的 gui 工具包吗?
如果这很重要,我正在 Windows PC 上使用 Python 2.x。