设为首页 加入收藏

TOP

纯C语言贪吃蛇游戏(二)
2018-10-21 18:10:44 】 浏览:272
Tags:语言 游戏
syncKeyState(VK_SPACE)) { pause(); } if (score==levelup&&speed>=10)//判断成绩,每累积30分速度变快 { speed-=10; levelup+=30; POS(75,12); printf("当前速度:每隔%d毫秒移动向前移动",speed); } move(); } } void move()//移动函数,上下左右箭头操作,w前s后a左d右(符号说明),函数包含吃食物计分功能 { StayAwayFromWall(); DonnotBiteYouself(); p=(snake*)malloc(sizeof(snake)); switch(key) { case 'd': { p->next=head; p->x=head->x+2; p->y=head->y; POS(p->x,p->y); printf("■"); head=p; Sleep(speed); if (p->x==foodx&&p->y==foody) { createfood(); score+=10; POS(75,11); printf("得分:%d",score); break; } while(p->next->next!=NULL) { p=p->next; if(p->next->next==NULL) { POS(p->x,p->y); printf(" "); free(p->next); p->next=NULL; p=head; break; } } break; } case 'w': { p->next=head; p->x=head->x; p->y=head->y-1; POS(p->x,p->y); printf("■"); head=p; Sleep(speed); if (p->x==foodx&&p->y==foody) { createfood(); score+=10; POS(75,11); printf("得分:%d",score); break; } while(p->next->next!=NULL) { p=p->next; if(p->next->next==NULL) { POS(p->x,p->y); printf(" "); free(p->next); p->next=NULL; p=head; break; } } break; } case 's': { p->next=head; p->x=head->x; p->y=head->y+1; POS(p->x,p->y); printf("■"); head=p; Sleep(speed); if (p->x==foodx&&p->y==foody) { createfood(); score+=10; POS(75,11); printf("得分:%d",score); break; } while(p->next->next!=NULL) { p=p->next; if(p->next->next==NULL) { POS(p->x,p->y); printf(" "); free(p->next); p->next=NULL; p=head; break; } } break; } case 'a': { p->next=head; p->x=head->x-2; p->y=head->y; POS(p->x,p->y); printf("■"); head=p; Sleep(speed); if (p->x==foodx&&p->y==foody) { createfood(); score+=10; POS(75,11); printf("得分:%d",score); break; } while(p->next->next!=NULL) { p=p->next; if(p->next->next==NULL) { POS(p->x,p->y); printf(" "); free(p->next); p->next=NULL; p=head; break; } } break; } } } void pause()//暂停函数,bug:暂停之后会出现蛇短一格。。继续蛇身恢复正常,不会解决 { do//额外增加的语句,解决上面说的bug,不知道暂停次数多了会不会崩溃,表面上问题是解决了的 { p=p->next; }while(p->next!=NULL); POS(p->x,p->y); printf("■"); while(1)//暂停语句 { Sleep(100); if (GetAsyncKeyState(VK_SPACE)) { break; } }//不能用system("pause");会出现按任意键继续字样 POS(p->x,p->y); printf(" "); } void welcome() { POS(28,10); printf("欢迎来到贪吃蛇"); POS(28,11); printf("游戏规则:"); POS(28,12); printf("1、不能撞墙"); POS(28,13); printf("2、不能撞自己"); POS(28,14); printf("3、空格可以暂停,再次按下继续游戏"); POS(28,15); printf("4、要玩的开心"); POS(28,16); printf("5、别按空格开始游戏!!!你按别的键都可以继续,就是别按空格"); POS(28,17); printf("作者:屈振宇"); POS(28,18); printf("别问我为什么和c语言网上的贪吃蛇那么像"); POS(28,19); printf("因为结构体和地图包括坐标的使用都是参照他做的"); POS(28,20); system("pause&qu
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇libuv 一 环境搭建, hello TTY 下一篇C语言——求水仙花数

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目