После того, как вы столкнулись с рядом проблем с рендерингом текста в PyGame, я задаюсь вопросом, есть ли какие-либо эффективные способы борьбы с ним.Эффективно обрабатывать текст в PyGame
Первый подход:
магазин тексты уже визуализируют в классах self.variables:
class SomeClass():
def __init__(self):
self.text1 = myfont.render("Text 1",0,self.colour)
self.text2 = myfont.render("Text 2",0,self.colour)
#etc.
затем в обработке события, я просто блитирования переменную:
while running:
screen.blit(SomeClass().text1,(x, y))
Примечание: myfont - это pygame.font.SysFont (...)
Результат: Framerate упал с> 29 (предел 30) до примерно 20 до 22.
Второй подход:
магазин только текстовые строки в классах переменных и визуализации перед выводом.
class SomeClass():
def __init__(self):
self.text1 = "Text 1 string"
self.text2 = "Text 2 string"
и затем сделать непосредственно перед блиттинг:
while running:
#more code
screen.blit(SomeClass().myfont.render(SomeClass().text1,0,SomeClass().colour)
Результат: Сопоставимые падение FrameRate
Третий подход:
с помощью GIMP, писать текст, а затем храните его в PNG. Результат: Нет заметных изменений в FPS
Итак, остается вопрос: есть ли способ эффективно обрабатывать текст в PyGame или это всегда лучшее решение для его создания? Я просто не понял базовое правило обработки текста в PyGame? Я что-то пропустил?
Как вы обрабатываете тексты в своих Py-Games?
Спасибо заранее для всех мнений и предложений;)
Patric
Спасибо! Это очень интересный подход. Я сделаю это. –
Теперь интересно что-то еще ... Разве команда «print» не потребляет много процессора ...? После того, как я удалил команду для печати FPS, игра внезапно работала заметно быстрее. –