当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : gtk_timeout_add只会调用一次目标函数
帖子发表于 : 2009-07-03 10:10 
头像

注册: 2008-10-29 22:16
帖子: 133
送出感谢: 0 次
接收感谢: 0 次
代码:
 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



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


页首
 用户资料  
 
2 楼 
 文章标题 : Re: gtk_timeout_add只会调用一次目标函数
帖子发表于 : 2009-10-09 16:31 

注册: 2006-08-07 22:52
帖子: 16
送出感谢: 0 次
接收感谢: 0 次
仔细看一下g_timeout_add参数2的说明,改成gboolean move(),然后返回TRUE即可


页首
 用户资料  
 
3 楼 
 文章标题 : Re: gtk_timeout_add只会调用一次目标函数
帖子发表于 : 2009-11-18 7:29 
头像

注册: 2008-10-29 22:16
帖子: 133
送出感谢: 0 次
接收感谢: 0 次
呵呵!目前使用qte开发了。


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


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译