我试图在pyglet中使用批处理来绘制标签。目前这个批处理用于绘制我创建的每个实体,一切都很好。我可以添加数百个精灵,它们都将被绘制,但不是我创建和添加的任何标签。我正在使用源库中的最新版本的pyglet,这是我正在使用的代码:
def _text(self, command):
uid, x, y, chars, font, size, level = command[1:]
print 'Text - uid=%s, x=%s, y=%s chars=%s, font=%s, size=%s, level=%s' % (uid, x, y, chars, font, size, level)
self._ents[uid] = (pyglet.text.Label(chars,
color=(0, 0, 0, 0),
font_name=font,
font_size=size,
batch=self._batch,
group=self._get_level_group(level)), level)
print self._ents[uid][0].batch
打印的批次对于我创建的每个Label都具有相同的内存地址,与我创建的任何Sprite的内存地址相同。我试图挖掘一下源代码并尝试找出出错的地方,但在打印出批处理的每一点上,内存地址都是一样的。奇怪的是,当我将一个打印语句放在一个位置,如果Label拥有自己的批次,或者给它一个批处理,它将以一种方式绘制自己,它只会在它拥有它的分支下打印出来。自己的批次。如果我在那时打印出批次的内存地址,则它与其他时间不同。不知怎的,似乎它看到它应该拥有自己的批次,并且创建一个新的而不是我提供的那个。
编辑:我感到愚蠢。它可以正常使用此代码...一旦我在标签创建代码中添加x = x,y = y。它默认为屏幕的左下角,而我试图绘制的角色是下划线,所以我看不到它们。一旦SO允许我,或者其他人可以为x / y做出回答,我会为这个问题添加一个答案,我会接受它。答案 0 :(得分:0)
我感到愚蠢。它可以正常使用此代码...一旦我在标签创建代码中添加x = x,y = y。它默认为屏幕的左下角,而我试图绘制的角色是下划线,所以我看不到它们。我修好了,现在一切都很好。