gtk_timeout_add只会调用一次目标函数

软件和网站开发以及相关技术探讨
回复
头像
md5xwl
帖子: 133
注册时间: 2008-10-29 22:16
联系:

gtk_timeout_add只会调用一次目标函数

#1

帖子 md5xwl » 2009-07-03 10:10

代码: 全选

 91 void move()
 92 {
 93  gint i,len;
 94  gchar buf[1024];
 95  len = slength - 1;
 96  tailx = locate[0][0];
 97  taily = locate[0][1];
 98  headx = locate[len][0];
 99  heady = locate[len][1];
100  switch( forward)
101  {
102   case LEFT:
103       erase();
104       headx--;
105       if(headx == -1) headx = 59;
106       for (i = 0;i < len;i++)
107          {
108           locate[i][0] = locate[i+1][0];
109           locate[i][1] = locate[i+1][1];
110          }
111       locate[len][0] = headx;
112       locate[len][1] = heady;
113       draw();
114       break;
115   case UP:
116       erase();
117       heady--;
118       if(heady == -1)  heady = 39;
119       for ( i = 0;i < len;i++)
120          {
121           locate[i][0] = locate[i+1][0];
122           locate[i][1] = locate[i+1][1];
123          }
124       locate[len][0] = headx;
125       locate[len][0] = heady;
126       draw();
127       break;
128   case RIGHT:
129       erase();
130       headx++;
131       if( headx == 60) headx = 0;
132       for (i = 0; i < len;i++)
133          {
134           locate[i][0] = locate[i+1][0];
135           locate[i][1] = locate[i+1][1];
136          }
137       locate[len][0] = headx;
138       locate[len][1] = heady;
139       draw();
140       break;
141   case DOWN:
142       erase();
143       heady++;
144       if(heady == 40) heady = 0;
145       for (i = 0;i < len;i++)
146          {
147           locate[i][0] = locate[i+1][0];
148           locate[i][1] = locate[i+1][1];
149          }
150       locate[len][0] = headx;
151       locate[len][1] = heady;
152       draw();
153       break;
154  }
155  /*判断是否吃了豆*/
156  if ( (beanx == headx)&&(beany == heady))
157  {
158   level++;
159   if(level == 7) return ;
160   clean();
161   sprintf(buf,"小蛇长度:%d ",level);
162   gtk_label_set_text(GTK_LABEL(label),buf);
163   now_forward = forward = DOWN;
164   init(level*5);
165   bean();
166  }
167 }


197 void on_begin_clicked(GtkButton *button,gpointer data)                        /*加入定时器*/
198 {
199  timer = g_timeout_add(100,(GtkFunction)move,NULL);
200 }
201 

代码: 全选

苏老泉,二十七,始发愤,读书籍。彼既老,犹悔迟。尔小生,宜早思!!
iltgcl
帖子: 16
注册时间: 2006-08-07 22:52

Re: gtk_timeout_add只会调用一次目标函数

#2

帖子 iltgcl » 2009-10-09 16:31

仔细看一下g_timeout_add参数2的说明,改成gboolean move(),然后返回TRUE即可
头像
md5xwl
帖子: 133
注册时间: 2008-10-29 22:16
联系:

Re: gtk_timeout_add只会调用一次目标函数

#3

帖子 md5xwl » 2009-11-18 7:29

呵呵!目前使用qte开发了。

代码: 全选

苏老泉,二十七,始发愤,读书籍。彼既老,犹悔迟。尔小生,宜早思!!
回复