首页 > 解决方案 > 在 pyxel 复古游戏中获取像素的颜色

问题描述

我正在使用 Pyxel 编写一个简单的射击游戏,其中一个敌人随机出现在屏幕上。我已经实施了一种策略来检测给定的射击是否击中了敌人,但对我来说更简单的解决方案是检查鼠标坐标下屏幕上像素的颜色。我没有找到一个 API 函数来做到这一点。

我检查了 Renderer 模块的源代码(https://github.com/kitao/pyxel/blob/master/pyxel/renderer.py)并找到了对 OpenGL 库的调用:

capture_image = gl.glReadPixels(
            0, 0, self._width, self._height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE)

我试图在我的脚本上做同样的事情,如下所示:

capture_image = gl.glReadPixels(
            pyxel.mouse_x, pyxel.mouse_y, 1, 1, gl.GL_RGB, gl.GL_UNSIGNED_BYTE)

但无论我何时调用 gl.glReadPixels(..) 我总是得到背景颜色。

有没有办法在 pyxel 脚本上获取屏幕上单个像素的颜色?

标签: pythonpython-3.xpyxel

解决方案


你有没有尝试过:

capture_image = gl.glReadPixels(
        pyxel.mouse_x, 
        window_height - pyxel.mouse_y,
        1, 1, gl.GL_RGB, gl.GL_UNSIGNED_BYTE)

推荐阅读