我正在测试pyglet,它什么都有(除了一个很好的指南),但我唯一不明白的是:如何移动摄像头以显示隐藏内容?
twh00eeo1#
如Rabbid 76所述,尝试pyglet.gl.glTranslatef(dx,dy,dz)。glTranslatef中的第一个参数更改假定的“camera”的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键在窗口中移动标签。希望这对您有所帮助!
0kjbasz62#
尝试使用偏移量。Fo/x,假设x = 0,并且camoffset = 5。你可以将x渲染为x+camoffset。它可以工作。
mqkwyuun3#
对于pyglet 2更新之后的任何人,现在可以使用Window.view = Window.view.from_translation(pygmath.Vec3(xpos, ypos, zpos))。
Window.view = Window.view.from_translation(pygmath.Vec3(xpos, ypos, zpos))
3条答案
按热度按时间twh00eeo1#
如Rabbid 76所述,尝试pyglet.gl.glTranslatef(dx,dy,dz)。
glTranslatef中的第一个参数更改假定的“camera”的x方向,第二个参数更改y方向,第三个参数更改z方向。下面是一个快速代码示例,可能也会有所帮助:
在上面的例子中,您可以使用I、J、K和L键在窗口中移动标签。希望这对您有所帮助!
0kjbasz62#
尝试使用偏移量。Fo/x,假设x = 0,并且camoffset = 5。你可以将x渲染为x+camoffset。它可以工作。
mqkwyuun3#
对于pyglet 2更新之后的任何人,现在可以使用
Window.view = Window.view.from_translation(pygmath.Vec3(xpos, ypos, zpos))
。