Я думаю о переносе проекта с PySFML на Pyglet. SFML — немного шаткая библиотека, и хотя она работает достаточно прилично, я решил взглянуть на Pyglet. К сожалению, Pyglet отображает неустойчивые изменения FPS при выполнении простых действий (от 20 до 800 FPS) и с трудом рисует кадры, когда я пытаюсь сделать что-то более сложное.
import pyglet
window = pyglet.window.Window()
fps_display = pyglet.clock.ClockDisplay()
labelList = []
for i in range(100):
label = pyglet.text.Label('Hello, world',
font_name='Times New Roman',
font_size=36,
x=window.width//2, y=window.height//2+i,
anchor_x='center', anchor_y='center')
labelList.append(label)
def main():
pyglet.clock.schedule_interval(update, 1/30.0)
pyglet.app.run()
def update(dt):
for la in labelList:
la.x += 1
@window.event
def on_draw():
window.clear()
for la in labelList:
la.draw()
fps_display.draw()
if __name__ == "__main__":
main()
Пример глупый, но я просто беру 100 меток и перемещаю их по экрану. Это работает со скоростью около 7 кадров в секунду на моей машине. Используя SFML, отрисовывая 500 спрайтов и обрабатывая ввод, я получаю около 200 кадров в секунду.