我正在用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脚本上获取屏幕上单个像素的颜色?
答案 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)
在(x
,y
)处获取像素的颜色:
pget(x, y)