Две причины -
Даже системам, управляемым событиями, обычно нужен какой-то цикл, который считывает события из какой-либо очереди и отправляет их обработчику, так что в любом случае вы в конечном итоге получаете цикл событий в окнах, и он вполне может его расширить. 1003 *
В целях анимации вам нужно будет обрабатывать некоторые виды даже для каждого кадра анимации. Конечно, вы могли бы сделать это с помощью таймера или какого-то неактивного события, но вы все равно могли бы в конечном итоге создать их в каком-то цикле, так что проще использовать цикл
непосредственно.
Я видел системы, которые обрабатывают все это с использованием событий, у них есть прослушиватель кадров, который прослушивает событие, отправляемое в начале каждого кадра. Внутри у них все еще есть крошечный игровой цикл, но он делает немного больше, чем обрабатывает системные события управления окнами и создает события фрейма,