Цртање текста

Програми који цртају, често уз слике исписују и разне поруке (вероватно сте и сами видели много примера). Ево како се то ради у ПајГејму:

Као што се види из примера, да би текст могао да буде приказан, прво треба креирати објекат који представља фонт. За то се користи функција pg.font.SysFont, којој задајемо врсту и величину слова. Можемо да направимо и више оваквих објеката у случају да намеравамо да пишемо словима различитих величина или типова, а често нам је довољан и само један фонт.

Након прављења фонта, сваки пут када желимо да прикажемо неки текст, понављамо следећа два корака:

Задаци - светлеће рекламе

Сигурно сте виђали светлеће рекламе са неонским цевима у облику слова. Оне привлаче пажњу тако што се различите групе слова укључују и искључују неким задатим редоследом који се понавља. Следи неколико примера инспирисаних таквим светлећим рекламама.

Треперећи текст: Напишите програм који приказује треперећи текст, слично као у примеру (дугме „Прикажи пример”).

Ако желите, можете да промените текст, његову боју и величину, фонт, учесталост укључивања и искључивања, или било шта друго. Ако желите да што приближније опонашате наш програм, он користи слова типа „Arial” величине 80, а приказује текст у сваком другом фрејму, центриран, при брзини од 3 фрејма у секунди.

Помоћ: Од глобалних променљивих које описују сцену, довољна је једна логичка променљива која говори да ли треба приказати дати текст. Овој променљивој ћемо у функцији nov_frejm() мењати вредност, тако да она има вредност True у сваком другом фрејму.

Додавање слова: Пробајте сада да имитирате овај пример. У првом фрејму се приказује само прво слово, а у сваком следећем по једно слово више док се не прикажу сва слова. Након тога следи један фрејм у коме се не приказује ништа, па три фрејма са свим укљученим словима, а затим се све понавља. Брзина приказивања у нашем програму је 2 фрејма у секунди.

Помоћ: ево неких коментара који могу да помогну при решавању задатка

  • Из описа (и посматрања примера) можемо да закључимо да пун циклус садржи четири фрејма више него што има слова у тексту.

  • Потребну величину прозора можемо да одредимо на основу дужине текста, као у претходном примеру.

  • Текст се увек приказује на истој позицији (исти је горњи леви угао текста). Према томе, позицију можемо да израчунамо једном, у главном делу програма.

  • Можемо да користимо бројач фрејмова као глобалну променљиву, па у функцији nov_frejm() помоћу if наредби да на основу вредности бројача установимо да ли и који део текста треба приказати.

Појединачна слова: У овом примеру се прво приказује свако слово посебно, а затим се сва слова 3 пута укључе и искључе. Можете ли да поновите ово понашање?

Помоћ: позиције приказивања појединих слова су редом (0, 0), (50, 0), (100, 0), (150, 0) итд. Број фрејмова у циклусу је за 6 већи од броја слова у тексту. Остале идеје су врло сличне онима из претходних примера.

Покретна слова: Овај пример је другачији по томе што се слова померају. Покушајте и њега да реализујете.

Помоћ: Једном када формирате слику од датог текста, задатак постаје врло сличан задатку са аутом који се креће.

На крају, ако желите, овде можете да направите светлећу рекламу по вашој жељи.