pyglet - 图像上奇怪的灰色边框

pyglet - weird gray border on image

我正在用 pyglet (python 3) 编写一个简单的游戏。我有 this cloud sprite.

然而,当我 blit 它时,它看起来像 this.

灰色边框显然不是故意的,所以我想知道如何修复它。

这就是我用来启用带 alpha 的 blitting 图像的方法:

from pyglet import gl    

@window.event
def on_draw():
    glEnable(GL_BLEND)
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)

感谢任何帮助。提前致谢。

我假设您使用的是常规 resource 对象,并且您使用 image.blit(X, Y).
将它们一个接一个地传送 这可行,但需要做更多的工作,而且我认为处理时间以及您必须为每个 blit 图像设置和重置 alpha 通道。

但是,如果您使用 sprites,alpha 通道将成为一项自动化功能,您不必为此担心太多。

这个问题解决了,也是long中的一个速度提升器运行:

import pyglet
import pyglet.clock
from pyglet.gl import *

window = pyglet.window.Window()
window.config.alpha_size = 8

bg = pyglet.sprite.Sprite(pyglet.image.load('bg.png'))
cloud = pyglet.sprite.Sprite(pyglet.image.load('cloud.png'))

@window.event
def on_draw():
    window.clear()
    bg.draw()
    cloud.draw()

pyglet.app.run()