问题标签 [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 - 从 glTranslatef 切换到 gluLookAt 后,opengl 不会呈现所需的输出
我很难开始gluLookAt
工作。我有以下代码可以按预期使用glTranslatef
:
glTranslatef
现在,我认为我可以移动相机而不是使用。我修改了代码来调用gluLookAt
:
但是,如果我现在按其中一个箭头键,方块就会消失。我打电话有什么问题gluLookAt
?
编辑以下on_draw()
功能也不起作用(我只是黑屏):
python - 如何在pyglet包中使用暂停方法
我正在使用 python 中的 pyglet 包为音乐播放器编写代码。我可以成功播放一首歌。但是打电话后我不能暂停这首歌pyglet.app.run()
。
如果我pyglet.app.run()
在暂停后打电话,我就无法播放这首歌。如何在我的代码中管理播放和暂停?
我的代码:
python - 如何使用 VBO 和 Pyglet 更新数据
我想用 Pyglet 制作一个每一帧都在变化的网格。因此,我需要经常更新顶点,我认为 VBO 将是最快的方式(如果我错了,请纠正我)。下面是一个点的例子。这是正确的做法吗?我读到应该尽量减少 glBindBuffer 调用的数量,但这里每帧都调用它。GL_DYNAMIC_DRAW 也已启用,但如果我将其更改为 GL_STATIC_DRAW 它仍然有效。这让我想知道这是否是快速计算的正确设置
python - 如何在 pyglet 侧滚动条中制作随机无限地形?
我正在尝试使用 pyglet 制作横向卷轴游戏,并且我已经设法绘制了背景、角色和一些地形。(我对 GUI 的东西很陌生)问题是当玩家移动角色时,地形是要自己生成的(就像像泰拉瑞亚这样的游戏)但我找不到不制作 1000 个副本的方法精灵。你对我将如何处理这件事有任何想法吗?如果我没有说清楚,请随时提出问题:)
编辑:到目前为止,我一直在为每个地形创建一个变量,如下所示:
我还创建了一个类来查看块上是否有一棵树:
但我想知道我是否必须为我想要的所有地形创建ground2、ground3、ground4 ...,或者是否有更简单的生成方式(可能无限制)
python - 使用 pyglet 同时移动多个精灵相同的距离
我知道如何使用批次同时绘制它们,但我想知道是否有办法一次移动整个批次。我需要单独移动所有精灵吗?
到目前为止,我一直在这样做:
ETC...
但是在成品中会有比这更多的精灵(我希望有 50 多个),移动它们会很烦人。
任何帮助将不胜感激 :)
python - Pyglet:Sprite.draw() 和 Batch.draw() 不起作用,但 Image.blit 可以
在我正在学习的 pyglet 中,Image.blit() 有效,但 Sprite.draw() 无效,Batch.draw() 也无效,即使在这个简单的代码中:
窗口仍然是黑色的。但是,例如,我可以绘制标签。我发现的唯一解释是关于显卡和其中一些的“v2i”错误,但我害怕在不知道我在做什么的情况下接触 pyglet 的代码。
python - 在 Python 中使用 Pyglet 和 Tkinter 播放音乐
我想创建一个带有播放和停止按钮的简单 gui,以在 python 中播放 mp3 文件。我使用 Tkinter 创建了一个非常简单的 gui,它由 2 个按钮(停止和播放)组成。
我创建了一个执行以下操作的函数:
我将该功能作为命令添加到按钮播放中。我还做了一个不同的功能来停止音乐:
我将此功能作为命令添加到第二个按钮。但问题是当我点击播放时,python 和 gui 冻结。我可以尝试关闭窗口,但它没有关闭,并且停止按钮没有响应。我知道这是因为 pyglet.app.run() 正在执行直到歌曲结束,但我该如何防止这种情况发生?当我单击按钮时,我希望 gui 停止音乐。关于在哪里可以找到解决方案的任何想法?
python - Python pyglet AVBin - 如何安装 AVBin
Pyglet 使用 AVBin 来解码 MP3。链接:http ://avbin.github.com/AVbin/Download.html
使用提供的 install.sh 安装,使用时会导致错误:
...所以它没有正确安装?使用 python virtualenv,怀疑这可能会导致问题......虽然我在 virtualenv 中运行了 AVBin 的 install.sh,如下所示:
更新
我找到了安装avbin的位置...它似乎安装在正确的位置=S
更新 2
库是 .so ,不是 .dylib ,为什么要 .dylib 神秘代码?这是 Linux 而不是 Mac(Mac 有 .dylib,Ubuntu 有 .so)
python - 如何避免在类蠕虫游戏中每帧复制关卡 Surface?
我正在开发一款具有可破坏地形的游戏(例如在游戏《蠕虫》或《焦土》中),并通过蒙版使用像素完美碰撞检测。
关卡是一个单一的表面,现在它的工作方式是我每帧创建一个副本,绘制所有需要在其上绘制的精灵,然后将可见区域blit到显示表面。
有什么办法可以避免每帧复制整个关卡表面并且仍然可以使用 pygame 中的像素完美碰撞工具?
我尝试先对水平面进行 blitting,然后再对屏幕上的每个 sprite 进行 blit(通过相机调整它们的 blit 坐标,除了坐标是静态的玩家角色),但在这种情况下,碰撞检测系统崩溃了,我可以' t 似乎能够修复它。
更新
我设法使其工作如下:绘制精灵时,我将它们的游戏世界坐标(基本上是相对于关卡位图原点的坐标)转换为屏幕坐标(相对于相机的坐标,这是当前水平的可见区域)。
在碰撞检测阶段,我使用相对于水平面定位的坐标和边界框;所以就像上面一样。问题是相机的位置绑定到玩家的位置,这不是也不应该是静态值(我真的不知道我是如何设法这么长时间没有意识到这一点的)。
虽然这解决了我的问题,但下面的答案更全面地介绍了如何在这种情况下提高性能。我也愿意接受使用其他库的建议,这些库可以使考验更容易或更快。我曾考虑过 pyglet 和 rabbyt,但看起来那里也存在同样的问题。
python - 在python中使用pyglet,如果我用鼠标拖动,为什么我的帧速率会加快?
我使用 python 的 pyglet 包编写了一个简单的图像显示。在我的Linux 笔记本电脑上,代码按我的预期运行,每秒显示恒定的 60 帧。
然而,在我的 Windows 7 桌面(@Xi的 GeForce GTX 550 Ti 相当新)上,帧速率非常非常低(约 10 FPS 或更低)。但是,我不认为这是硬件限制,因为鼠标拖动事件会大大加快帧速率(60 FPS 或更高)。
为什么当我不拖动鼠标时,我在 Windows 上的帧速率如此之低,而当我拖动鼠标时却如此之快?
这是我用来产生这种行为的简化代码:
'1.png' 和 '2.png' 具有相同的像素尺寸,它们只是不同的图像,所以我可以看到帧翻转。我正在使用 python 2.7.2 和 pyglet 版本 1.2dev。我很乐意添加任何有用的附加信息。