动画中的XEvent处理



我对Xlib函数的事件处理有一些理解问题。

我的问题是,如何在不干扰动画的情况下,在动画中按键。

到目前为止,我的设置是,我在while循环中有一些动画,并希望实现修改参数的KeyPress事件。

它看起来有点像这个

而(1){

XNextEvent(dis,&report)
开关(report.type){
case按键:
if(XLookupKeysym(&report.xkey,0)==XK_space){
//。。。修改参数a../
}}
//。。。参数a用于修改动画的某些动画//
}

现在,问题是我必须一直按键才能在屏幕上显示动画,否则什么都不会出现。我已经尝试了一些多次代码修改,使用KeyRelease等,但我没有clou,真的。

Trivially说-我需要在没有XNextEvent过程的动画过程中挂起一个关键帧,等待任何事件。但是如果我的代码中没有XNextEvent语句,KeyPress事件检查的条件语句就无法工作。

我想正式的意思是:

而(1){

if(report.type==KeyPress){
if(XLookupKeysym(&report.xkey,0)==XK_space){
//。。。修改参数a../
}}
//。。。参数a用于修改动画的某些动画//
}

在使用XNextEvent()获取XEvents之前,请使用XPending()检查XEvents。

XPending()返回事件队列中的事件数,因此修改循环:

   while(1){
     if (XPending(dis) > 0) {
       XNextEvent(dis, &report);
       switch (report.type) {
         case KeyPress:
           if (XLookupKeysym(&report.xkey, 0) == XK_space){
              //...modify parameter a..//
           }
        }
     }
     //...Some animation where parameter a is used to modify animation...//
   }

相关内容

  • 没有找到相关文章

最新更新