在pyxel复古游戏中获取像素的颜色

时间:2019-05-06 18:44:38

标签: python python-3.x

我正在用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脚本上获取屏幕上单个像素的颜色?

2 个答案:

答案 0 :(得分:0)

您尝试过吗:

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

答案 1 :(得分:0)

在(xy)处获取像素的颜色:

pget(x, y)