蛇要想实现风骚走位,肯定是不能一直往一个方向一直前行的,需要配合我们的键盘,实现上下左右的移动,这就需要我们实现既要改变键盘的方向,同时也要进行函数界面的刷新,当两个循环构建在一起时,常规是不能一起进行的,所以我们需要借助线程来帮我们解决这个困难。
为了更好的了解线程我们先举一个简单的例子:
pthread_create(&th1,NULL,func1,NULL); //线程的简单模型,我们直接仿照他写
//一下下面的代码,看看现象
#include<stdio.h>
#include<pthread.h>
#include <unistd.h>
void* func1(){
while(1){
printf("this is func 1\n");
sleep(1);
}
}
void* func2(){
while(1){
printf("this is func 2\n");
sleep(1);
}
}
int main(){
pthread_t th1;
pthread_t th2;
pthread_create(&th1,NULL,func1,NULL);
pthread_create(&th2,NULL,func2,NULL);
while(1);
return 0;
}
运行上面的代码,我们就可以实现func1和func2两个函数 的循环,这就是线程的简单应用。
让我们回到主线任务 ,通过引用线程,让我们实现方向键和游戏界面刷新的循环,首先定义两个函数,一个是refresh界面函数,一个是接受按键的函数:
主函数main直接套用上面的案例,就可以实现:
当我们按下按键,最底部的数组会做出反应,代表着我们系统已经接收到了 键盘的指令。
今天的内容就到这里了~