Шрифты в PyGame
Велкам ту риал уорлд, Нээээо
- Устройство шрифта (упрощённое): Baseline, Ascent, Descent, Size как максимальная высота
- Вывод текста:
- Регистрация шрифта
- Рендеринг картинки из текста
blit()
- Ввод текста:
- Синхронно или асинхронно?
- Редактирование ввода
Пример модуля для ввода с помощью PyGame: pyginput.py
В самом модуле есть пример использования, если запускать го как программу (функция __main()`)
- Простой пример использования:
1 import pygame 2 from pyginput import Input, Print 3 pygame.init() 4 scr=pygame.display.set_mode((300,100)) 5 pygame.draw.ellipse(scr,(255,200,123),(10,10,280,80)) 6 7 inp=Input(u"Строчка:") 8 txt=inp.input(scr,(10,10)) 9 Print(scr,txt) 10 while True: 11 ev=pygame.event.wait() 12 if ev.type in (pygame.QUIT, pygame.KEYDOWN): 13 break 14 pygame.display.flip()
Ещё один пример: pyginput_example.py
Несовпадение Size и Height: ft_size_vs_height.py
Домашнее задание
Прочитать про метрики шрифта в википедии
Посмотреть и почитать о выводе текста в учебнике по PyGame и в игре "пришиби обезьянку"
Запустить программу, показывающую несоответствие Size и Height
Эта программа принимает в качестве первого параметра путь до шрифтового файла. Попробовать другие TTF-шрифты (например, Vera.ttf).
Добавить в эту программу ещё одно измерение — высоту буквы m (маленькой латинской). Подсказка: придётся изучать цвет пикселей после рендеринга.
- Написать программу: введённое слово отображается по центру экрана, а затем буквы разбегаются в разные стороны
с помощью pyginput.py или какой-нибудь другой библиотеки ввода для PyGame (например, этой)
буквы можно ловить мышкой!
Модифицировать программу рисования графика произвольной функции так, чтобы ввод происходил с помощью PyGame
+ (для pyginput) использовать проверку типов SetType
Условные обозначения
— тема по Linux
— тема повышенной сложности
— теоретическое задание
— тема для самостоятельного изучения