簡體   English   中英

派格萊特。 將Sprite放入Batch時如何設置Sprite的“z”軸值

[英]Pyglet. How to set "z" axis value for Sprite when put it into Batch

環境:

蟒蛇:3.6.6
pyglet 版本:1.3.2

代碼示例:

將元素添加到pyglet.graphics.Batch()中,我了解如何設置z

# e.g. z = -2
texture_group = pyglet.graphics.TextureGroup(
    pyglet.image.load(os.path.join(GROUND_DIR, "t1.png")).texture
)

self.vertices = self.batch.add(
    4, pyglet.gl.GL_QUADS,
    texture_group,
    ('v3f', (x, y, z,
             x_, y, z,
             x_, y_, z,
             x, y_, z)),
    ('t2f', (0, 0, 1, 0, 1, 1, 0, 1)))

但我在使用pyglet.sprite.Sprite()期間找不到設置z軸值的方法

image = pyglet.image.load(os.path.join(MOVEMENT_DIR, "t1_1.png"))
image2 = pyglet.image.load(os.path.join(MOVEMENT_DIR, "t1_2.png"))
self.sprite = pyglet.sprite.Sprite(
    img=pyglet.image.Animation(
        frames=[
            pyglet.image.AnimationFrame(image, 1),
            pyglet.image.AnimationFrame(image2, 1)
        ]
    ),
    x=x,
    y=y,
    batch=self.batch
)

Sprite 在z=0上繪制。 例如,我需要在z=-1上移動

我想做什么

我試圖將z直接設置為圖像紋理

texture = image.texture
texture.z = -1

但無論如何,精靈再次被繪制在z=0上。

問題

是否可以“說” pyglet.sprite.Sprite()應該在 z 軸的哪個位置繪制?

對於任何建議/鏈接/等,我將不勝感激,因為我在文檔中找不到這方面,也找不到相同情況的示例。

也許您可以使用不同的批次:

batch_down.draw() # background
batch.draw()

但我們不能在批次之間移動精靈。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM