pyglet中的标签不是批量绘制的

时间:2012-08-21 23:41:18

标签: python python-2.7 pyglet

我试图在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做出回答,我会为这个问题添加一个答案,我会接受它。

1 个答案:

答案 0 :(得分:0)

我感到愚蠢。它可以正常使用此代码...一旦我在标签创建代码中添加x = x,y = y。它默认为屏幕的左下角,而我试图绘制的角色是下划线,所以我看不到它们。我修好了,现在一切都很好。