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

时间:2017-09-07 01:28:44

标签: python python-3.x pyglet

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

然而,当我把它搞定时,它看起来像this.

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

这就是我用来启用用alpha创建图像的方法:

from pyglet import gl    

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

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

1 个答案:

答案 0 :(得分:0)

我假设您正在使用常规的resource个对象,并且您使用image.blit(X, Y)一个接一个地对它们进行blitting。
这有效,但需要更多的工作,我认为处理时间以及您必须为每个图像设置和重置Alpha通道。

但是,如果你使用精灵alpha通道成为一个自动功能,你不必担心它。

这解决了这个问题,从长远来看也是一个速度增强器:

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()