Я пытался анимировать в программе на C, используя Xlib, и я хочу что-то делать, когда происходит событие, иначе я хочу продолжать анимацию. Вот пример кода того, что я сейчас делаю:
while( 1 )
{
// If an event occurs, stop and do whatever is needed.
// If no event occurs, skip this if statement.
if ( XEventsQueued( display, QueuedAlready ) > 0 )
{
XNextEvent( display, &event )
switch ( event.type )
{
// Don't do anything
case Expose:
while ( event.xexpose.count != 0 )
break;
// Do something, when a button is pressed
case ButtonPress:
...
break;
// Do something, when a key is pressed
case KeyPress:
...
break;
}
}
animate(); // Do animation step i.e. change any drawings...
repaint(); // Paint again with the new changes from animation...
}
В общем, я хочу продолжать цикл, если пользователь еще не щелкнул мышью ИЛИ не нажал клавишу на клавиатуре. Когда пользователь нажимает клавишу ИЛИ щелкает мышью, я хочу остановиться и выполнить определенное действие. Проблема в моем коде выше заключается в том, что он не останавливается всякий раз, когда я выполняю действие. Если я удаляю оператор if, анимация блокируется, пока не происходит событие, однако я не хочу этого. Это простая проблема, но я немного новичок в Xlib / анимации, поэтому любая помощь будет высоко оценена. Спасибо.