Pygame隐形颜色

时间:2016-04-03 19:26:11

标签: python-2.7 colors pygame

有没有办法在pygame中定义一个不可见的颜色,所以在screen.fill(invisibleColor,pygame.mouse.get_pos())上调用它不会覆盖它背后的图纸?

1 个答案:

答案 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将显示为一个实心矩形(鼠标下方有一个孔)。

希望这有助于根据您的需求改进答案。