Садржај
1. Робот Карел - линијски програми и бројачка петља
2. Робот Карел - условна петља и гранање
3. Робот Карел - задаци за вежбање
4. Корњача графика - линијски програми и петље
5. Корњача графика - гранање, угнежђене петље, функције, торке и листе
6. Корњача графика - задаци за вежбање
9. Израчунавања - коришћење и дефинисање функција
10. Израчунавања - задаци за вежбање
13. Контрола тока - вежбање
17. Програмирање 2Д графике - Увод у Pygame

29.1. Догађаји увод

Механизам догађаја омогућава интеракцију прграма који је покренут (у извршењу) са корисником. Када корисник помери миша, притисне дугме миша или тастер на тастатури, бележи се догађај на који програм може одреаговати извршавањем неког програмског кода (обрадом догађаја).

Обрада догађаја ће се заснивати на постојању функције obradi_dogadjaj, која анализира сваки догађај који се десио и на основу тога мења стање програма (представљено најчешће преко глобалних променљивих). Информације о сваком догађају налазе се у објекту dogadjaj, који се аутоматски прослеђује као аргумент ове функције.

Дефинисаћемо и функцију crtaj која црта прозор на основу текућег стања програма. Пошто ћемо многе догађаје игнорисати (на пример, у неком програму ћемо реаговати само на померање миша, а не и на тастере тастатуре), неће бити потребе да се сцена поново исцртава након сваког догађаја. Зато ћемо усвојити конвенцију да функција obradi_dogadjaj враћа логичку вредност којом се назначава да ли је потребно поново исцртати сцену.

Различити начини за реаговање на догађаје

Постоји неколико начина да се у програму реализује реаговање на догађаје, и о њима више можеш прочитати овде. Ми ћемо користити библиотеку PyGameBg у којој ће се догађаји обрађивати у главној петљи која се покреће функцијом pygamebg.event_loop, чији су параметри функција за цртање crtaj и функција обраде догађаја obradi_dogadjaj.

Типови догађаја

Функција obradi_dogadjaj као аргумент прима догађај који се десио и потребно је прво да утврди његов тип (да ли је то био притисак неког тастера на тастатури, клик неког дугмета миша, померање миша и слично). Сваки догађај чува податак о типу догађаја коме можемо приступити помоћу поља type и стога ће се у функцији obradi_dogadjaj најчешће вршити гранање на основу вредности овог поља. У програмима заснованим на коришћењу библиотеке PyGameBg обрада догађаја ће најчешће функционисати на следећи начин:

(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+