嘿,我在这个问题上停留了很长时间,希望有人可以帮助我:
我正在使用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类的构造方法Letter是pyglet.sprite.Sprite的子类:
def __init__(self,im,iden,xx,yy):
super(Letter,self).__init__(img=im,x=xx,y=yy)
在程序中,我不会修改精灵的x和y坐标,但是当我绘制它们时,无论我为xx和yy输入什么,它们总是被绘制在窗口的同一位置,除非我为yy做一个非常大的数字,在那种情况下,它会消失(我假设它在窗口外面)。
我让每个字母在屏幕上闪烁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
这应该可以解决问题。