很多朋友对C语言项目:接球小游戏,自制!详细思路+源码分享不是很了解,六月小编刚好整理了这方面的知识,今天就来带大家一探究竟。每天一
很多朋友对C语言项目:接球小游戏,自制!详细思路+源码分享不是很了解,六月小编刚好整理了这方面的知识,今天就来带大家一探究竟。
每天一个C语言小项目,提升你的编程能力!我用VS写了一个小游戏。界面右侧有运行时间、接球数等信息。
有10个球落下,玩家可以控制一个盒子左右移动(方向键)捡起小球。球,按Esc键退出,最后会显示收到的球数/得分。
游戏就这么简单,但也很考验你的反应能力!游戏运行截图如下:简单了解游戏后,我们来试试吧!本项目编译环境:Visual Studio 2019/2022,EasyX插件代码展示:#include #include #include #include //定义常量#define NUM 10#define CMD_LEFT 1#define CMD_RIGHT 2#define CMD_QUIT 4int box_x=10;int box_y=420;//定义球的结构struct Ball{ int x , y, v;};//获取用户控件int GetCommand(){ int c=0;如果(GetAsyncKeyState(VK_LEFT)0x8000) c |=CMD_LEFT;如果(GetAsyncKeyState(VK_RIGHT)0x8000) c |=CMD_RIGHT;如果(GetAsyncKeyState (VK_ESCAPE)0x8000) c |=CMD_QUIT; return c;}//倒计时int Time(int t){ char strsec[10]; int sec=20 - (GetTickCount() - t)/1000; itoa(sec, strsec, 10); outtextxy(570, 110, ' '); outtextxy(570, 110, strcat(strsec, 's')); return sec;}//简介void menu(){ line(449, 0, 449, 480); char runTime[]='比赛倒计时:', receiveBallNum[]='接球数:', copyRight[]='版权:C语言编程', finishWorkDate[]='结束日期:2023 7月7日1号', introductiona[]='按方向键控制方块移动接球', introductionb[]='球,倒计时到0时游戏结束';设置文本颜色(绿色); outtextxy(450, 10, 简介); outtextxy(450, 30, 介绍b); outtextxy(450, 110, 运行时间); outtextxy(450, 210, receiveBallNum); outtextxy(450, 310, 版权); outtextxy(450, 410, finishWorkDate);}//生成随机球void ballRandom(Ball ball[], int i){ ball[i].x=16 + 45 * i;球[i].y=8 + rand() % 32; ball[i].v=1 + rand() % 5;}//绘制球并计算分数void calculateScore(Ball ball[], int score){ for (int i=0; i=472) { ballRandom (球,我);继续; } if (box_x + 8=ball[i].x ball[i].x=412) { score++;球随机(球,我); } }}//主函数int main(){ //初始化initgraph(640, 480 ); srand(时间(NULL)); BeginBatchDraw();设置线颜色(绿色);设置填充颜色(白色);菜单();球球[NUM]; int dx, i, c, 分数=0;布尔标志=真;对于(i=0; i NUM; i++) { ballRandom(ball, i); } int t=GetTickCount(); char strScore[10], str[]='你的分数:'; //主游戏循环while (flag ) { dx=0; //显示得分char strScore[10]; itoa(分数, strScore, 10); outtextxy(570, 210, strScore); //绘制球并计算得分calculateScore(ball, score); //绘制框fillrectangle(box_x, box_y, box_x + 80, box_y + 60);冲洗批量绘制(); //获取用户控制命令c=GetCommand();如果(c CMD_LEFT) dx=-10;如果(c CMD_RIGHT) dx=10;如果(c CMD_QUIT)标志=假;如果(!时间(t))标志=假; //延迟睡眠(25); //清除游戏区域clearrectangle(0, 0, 448, 480); //计算球的新坐标for (i=0; i NUM; i++) { ball[i].y +=ball[i].v; } //移动盒子box_x +=dx;如果(box_x 368) box_x=368; } //清除键盘缓冲区FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE)); //输出游戏结果itoa(score, strScore, 10); outtextxy(222, 240, strcat(str, strScore)); outtextxy(220, 300, '按任意键退出'); EndBatchDraw(); //按任意键退出getch();关闭图();返回0;}大家赶快来试试看吧!审计师唐子宏。
以上就是关于C语言项目:接球小游戏,自制!详细思路+源码分享的知识,希望能够帮助到大家!
声明本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们