python - 在 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 脚本上获取屏幕上单个像素的颜色?
解决方案
你有没有尝试过:
capture_image = gl.glReadPixels(
pyxel.mouse_x,
window_height - pyxel.mouse_y,
1, 1, gl.GL_RGB, gl.GL_UNSIGNED_BYTE)