有没有办法在pygame中定义一个不可见的颜色,所以在screen.fill(invisibleColor,pygame.mouse.get_pos())
上调用它不会覆盖它背后的图纸?
答案 0 :(得分:2)
Python中有三种不同的透明度方法;查看The documentation for fill看起来您需要将特殊标志传递到最后一个参数,以支持您使用的任何透明方法。
我觉得有用的是在我的表面上使用convert_alpha()
函数Documented here而不是convert
;我发现在我的情况下透明度不起作用,因为我使用的是常规convert
。
附加:
我并不是100%清楚你想要达到的目标,但我发现你可能意味着你只想要鼠标下面的一个矩形可见,你的意思是使用透明度来做到这一点。如果是这种情况,则存在一些问题:
如果这是你想要实现的目标,你可能最好只渲染一个较小的表面(鼠标下方的位)并将其绘制到固定背景的屏幕上。
如果你真的想在鼠标下面绘制一个带孔的实心矩形,你需要画出这样的四个矩形(对于ascii艺术而言很抱歉):
+------------------+
| 1 |
+------+---+-------+
| 2 | m | 3 |
+------+---+-------+
| 4 |
+------------------+
这样,鼠标下的屏幕位置(在图表中标记为m
)将不会被您的纯色覆盖,而是矩形1,2,3和4将显示为一个实心矩形(鼠标下方有一个孔)。
希望这有助于根据您的需求改进答案。