代码: 全选
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