问题标签 [pysdl2]

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 投票
3 回答
7368 浏览

python - 带有 PySDL2 的 Python - 找不到 SDL2 的任何库

我开始使用 PySDL2 和 Python 3.4 来制作游戏。每次我运行 PySDL2 文档给出的“hello world”代码时,看起来我还没有安装 SDL 库:

我已经尝试制作一个批处理文件来设置环境变量:

并且还尝试通过IDLE设置环境变量:

而且我什至尝试将 SDL.dll 文件放在 System32 文件夹中(顺便说一句,我在 Windows x64 机器上)我需要帮助,所以如果你因为没有足够的信息而无法回答,请告诉我

0 投票
0 回答
238 浏览

opengl - (py)SDL2 & (py)OpenGL:镜像窗口内容

我正在pySDL2编写一个多显示器应用程序,我希望在一个显示器上有一个全屏窗口,并在第二个显示器的一个窗口中调整全屏显示器的大小。我可以使用标准pySDL2窗口和pySDL2.ext像素访问轻松地将像素从一个窗口复制到另一个窗口(scipy.misc.imresize用于在两者之间调整大小),但我想pyOpenGL用于绘图(至少到全屏窗口)和当第一个在opengl上下文中时,似乎无法弄清楚如何对第二个窗口进行相同类型的复制和缩小。我知道我可以使用SDL_GL_MakeCurrent切换到第二个窗口的上下文并简单地重复在第一个窗口中完成的任何绘图(根据需要重新缩放),但是跟踪所有绘图似乎需要做很多工作。任何人都可以提出更好的解决方案吗?

0 投票
1 回答
89 浏览

python - OSX上的Pysdl2如何在长迭代循环中防止沙滩球光标

即使在调用 之后sdl2.mouse.SDL_ShowCursor(0),在运行时有效地隐藏了光标,当进行长时间的迭代(出于我的目的,将大量图像加载到 RAM 中)时,仍然会出现沙滩球光标。

关键是不要发生这种情况,因为我正在写的是一个关于视觉注意力的认知心理学实验——这种视觉分心绝对不会发生。

0 投票
2 回答
1153 浏览

python - 如何使用 PySDL2 获取鼠标位置?

除了监听事件,完全不明白如何实现获取鼠标位置,但是在事件队列为空的情况下,这是如何实现的呢?

pygamers 的 pysdl文档建议使用sdl2.mouse.SDL_GetMouseState()此处的文档),但此功能实际上需要您要询问的光标的 x、y 坐标。同时,调用sdl2.mouse.SDL_GetCursor()返回一个游标对象,但我找不到从中获取其坐标的方法(即它只是包装了一个 C 对象,因此它具有一个空.__dict__属性)。

我一直在尝试我能想到的一切,但我以前从未用 C 编程过。我试图生成的简单包装函数只是:

0 投票
1 回答
587 浏览

python - PySDL2 绘图顺序

下面的代码绘制了黑色背景、白色框和文本。但是,似乎绘制顺序尚未确定,有时我的文本或矩形被背景矩形覆盖。我试图了解管理此问题的适当方法是什么?

0 投票
0 回答
456 浏览

python - 如何使用 aggdraw 或 PySDL2 创建圆形渐变?

一般问题

我需要创建一个任意半径的圆形渐变并将其映射到当前鼠标位置。该项目主要使用OpenGLPySDL2,但由于遗留原因,也使用aggdraw(使用Pillow包装 PIL)。从广义上讲,SDL2 运行与 OpenGL 和大多数 UI 内容的交互,但 aggdraw 可以预见的是绘图。

我写了一个非常基本的函数。它的工作原理是鼠标运动和渐变绘制之间的延迟随着渐变半径而显着增长(请参阅我的代码;原因很明显)。

下面的代码使用了 aggdraw;aggdraw 对象在其他地方被转换为带有numpy的字节数组以传递给 OpenGL。

我对使用 SDL2 绘图库的解决方案持开放态度,但我从未使用过它,并且希望能像对待此类解决方案一样对待我。;)


特定上下文的注释

由于我提供的代码非常稀疏,出于礼貌,我应该提到这个接口与我已经编写了大约 1 年(KLIBS)的大型模块。所述模块在这里主要做了很多无关紧要的事情,但是,下面的函数确实插入了很多内部代码。唉,我还没有为模块编写文档,因为它(当前)是针对本地上下文的。

然而,这个函数我的代码;并且库的其余部分已经过很好的测试;与其他任何事情相比,开销小于 10 毫秒。

我认为必须有可能比屏幕刷新率更快地做到这一点,延迟 容忍度约为 30 毫秒(项目的背景是视觉认知科学的研究生工作)。我知道这也取决于硬件;一般来说,我们谈论的是不超过 3 年的 iMac。

我确信这可以做得更好,但我已经超出了我的深度;我通常使用网络语言(javascript/PHP/html/css)!

0 投票
1 回答
578 浏览

python - 提高精灵渲染性能?

我正在寻找一种方法来提高 PySDL2 渲染大量大型精灵的性能。Bellow 是我的尝试,尽量使用硬件渲染:

由于 PySDL2 的文档相当稀少,我很好奇我是否确实错过了一些重要的东西,并且编写的代码在某种程度上不是最理想的。

0 投票
1 回答
744 浏览

python - Pysdl2 在 Windows 7 上找不到 directx

我最近设法让 pysdl2 (0.9.3) 在 Windows 8.1(64 位)机器上运行(以及扩展模块 gfx、mixer、ttf 和 image)。一切正常,包括 pysdl2 的示例文件夹中的所有演示。

但是,当我尝试在 Windows 7(64 位)上使用相同的 SDL2 DLL 版本运行相同的代码时,我收到错误消息:

打电话后

我尝试安装 Directx 最终用户运行时(2010 年 6 月)甚至完整的 SDK,但无济于事。我还尝试将 SDL_VIDEODRIVER 环境变量更改为 directx 以外的其他变量,但这也不起作用(显然,'windib' 在 SDL2 中不再作为选项可用)。

我知道 SDL2 可能正在寻找 Directx 9,它现在已完全被 Directx 11 取代,但在安装最终用户运行时后,我的系统应该再次拥有 Directx 9。此外,如果这是问题的原因,那么它也不应该在 Windows 8.1 上运行,因为这个操作系统更新,更不可能携带 DX9?

编辑:在旁注中,pygame(使用较旧的 SDL 1.2 库)能够找到 directx 作为

输出:

所以 SDL2 库的内部配置肯定有问题。

0 投票
2 回答
2183 浏览

python - (Py)SDL2:绘制带纹理的多边形

我正在尝试使用 sdl_gfx 将此图像渲染为 PySDL2 中多边形上的纹理

在此处输入图像描述

但其显示完全失真,如 SDL 窗口的右下角所示:

在此处输入图像描述

我有这个 python 程序,我在其中测试了我在FrameBuffer 类中实现的所有 sdlgfx 绘图函数,该类负责绘图和渲染。它们都运行良好,除了抗锯齿多边形(中间的绿色六边形,但这是另一个问题)和纹理多边形。

为了提供更基本的脚本,我按照以下步骤绘制了一个带纹理的多边形:

上面的示例脚本仅输出:

在此处输入图像描述

我发现使用 SDL2 进行 ctype 转换和所有操作都非常令人生畏,我很高兴我能走到这一步,但我似乎无法自己解决这个问题。有谁知道我在哪一步犯了错误,或者谁能指出我正确的方向?

顺便说一句,我知道 PySDL 具有用于渲染图像的工厂函数,并且这些函数工作得很好,但我真的想让多边形的纹理选项也能工作。

0 投票
1 回答
142 浏览

python - sdl2 实体的错误设置属性

我正在使用 pysdl2 库。self.velocity 将打印,但 self.forward_tick 会抛出一个关键错误。

是什么导致只有部分自我属性被分配。我认为这与继承有关。

这是输出: