我正在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)
感谢任何帮助。提前谢谢。
答案 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()