Pyglet 没有在正确的位置绘制精灵

Pyglet not drawing sprites in correct positions

嘿,我已经在这个问题上停留了很长一段时间,希望有人能帮助我:

我正在使用 pyglet 并让所有代码在我的项目中工作(甚至是我遇到的问题)然后我重新启动了我的计算机但突然它没有工作......

这是实例化我的 'Letter' 对象的循环:

main_st = ut.makeString("EXNXYXAXDAADUXMDXLGEQTAQXDDQSVXUTSXKHXHRXYFUXLXJUTHXYVADSUXKHUQUIXSJHXHDPKXFQUXILNXORMXRPL")
letter_list = []
for i in range(len(main_st)):
    letter_list.append(l.Letter(pyglet.resource.image("Letters/" + main_st[i] + ".png"),main_st[i],10,10))

这是 Letter class 构造函数 Letter 是 pyglet.sprite.Sprite 的子class:

def __init__(self,im,iden,xx,yy):

        super(Letter,self).__init__(img=im,x=xx,y=yy)

我在程序中的任何时候都没有修改 sprite 的 x 和 y 坐标,但是当我去绘制它们时,无论我为 xx 和 yy 输入什么,它们总是被绘制在window 除非我为 yy 做了一个非常大的数字,在那些情况下它就会消失(我假设它在 window 之外)。

我让每个字母在屏幕上闪烁 1 秒,为了做到这一点,这是我的 on_draw 方法

def on_draw():
    background.draw()

    if not key_manager.cur_letter == None:
        key_manager.cur_letter.draw()

(仅绘制 key_manager.cur_letter 并且每秒切换)。

问题可能与旧版本有关。
但是在调用 super(Letter, self)... 之后你可以这样做:

def __init__(self,im,iden,xx,yy):
    super(Letter,self).__init__(img=im,x=xx,y=yy)
    self.x = xx
    self.y = yy

这应该可以解决问题。