有没有办法在pyglet中移动2D世界的相机?

时间:2019-04-10 15:19:50

标签: python-3.x 2d viewport pyglet

我正在测试pyglet,它具有所有功能(除了一个很好的指南),但我唯一不了解的是:如何移动相机以显示隐藏的内容?

2 个答案:

答案 0 :(得分:0)

尝试使用偏移量。 Fo / x,假设x = 0,并且camoffset =5。您可以将x渲染为x + camoffset。可以。

答案 1 :(得分:0)

如Rabbid76所述,请尝试pyglet.gl.glTranslatef(dx,dy,dz)。

glTranslatef中的第一个参数更改假定的“相机”的x方向, 第二个变化y,第三个变化z。这是一个快速的代码示例,可能也有帮助:

import pyglet
from pyglet.window import key
from pyglet.gl import glTranslatef  

def movement(keys):
    if keys[key.I]:
        glTranslatef(0,10,0)
    if keys[key.K]:
        glTranslatef(0,-10,0)
    if keys[key.J]:
        glTranslatef(-10,0,0)
    if keys[key.L]:
        glTranslatef(10,0,0)

def update(dt):
    window.clear()
    label.draw()
    movement()

if __name__ == '__main__':

    window = pyglet.window.Window(height=1000,width=1000)
    keys = key.KeyStateHandler()
    window.push_handlers(keys)
    label = pyglet.text.Label('Hello, world',
                          font_size=36,
                          x=window.width//2, y=window.height//2)

    pyglet.clock.schedule_interval(update,1/60)
    pyglet.app.run()

在上面的示例中,您将使用I,J,K和L键在窗口周围移动标签。希望这会有所帮助!