0

ピグレットのバッチを使用してラベルを描画しようとしています。現在、このバッチは、私が作成するすべてのエンティティを描画するために使用されており、すべてがうまく描画されます。何百ものスプライトを追加できます。それらはすべて描画されますが、作成して追加するラベルは描画されません。ソースリポジトリの最新バージョンの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

印刷されたバッチには、作成するすべてのラベルに対して同じメモリアドレスがあり、作成するすべてのスプライトに与えられるものと同じです。ソースコードを少し掘り下げて、何が問題になっているのかを突き止めようとしましたが、バッチを印刷したすべての時点で、メモリアドレスは同じです。奇妙な部分は、ラベルが独自のバッチを所有している場合にラベルが一方向に描画される場所に印刷ステートメントを配置した場合、またはバッチが与えられた場合、ラベルが所有しているブランチの下にのみ印刷することです。独自のバッチ。その時点でバッチのメモリアドレスを出力すると、毎回異なります。どういうわけか、それはそれ自身のバッチを所有するべきであると見ていて、私が提供するものの代わりに新しいものを作成しているようです。

編集:私は愚かだと感じます。このコードでは問題なく動作します...ラベル作成コードにx=x、y=yを追加すると。デフォルトは画面の左下で、描画しようとした文字はアンダースコアだったので見えませんでした。SOが許可したら、この質問に回答を追加するか、他の誰かがx / yの回答を入力して、それを受け入れます。

4

1 に答える 1

0

馬鹿げている。このコードでは問題なく動作します...ラベル作成コードにx=x、y=yを追加すると。デフォルトは画面の左下で、描画しようとした文字はアンダースコアだったので見えませんでした。これを修正しましたが、すべて問題ありません。

于 2012-09-05T00:40:33.573 に答える