C语言游戏项目球球大作战怎么实现
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章的内容主要围绕C语言游戏项目球球大作战怎么实现进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!项目代码
千家信息网最后更新 2025年01月23日C语言游戏项目球球大作战怎么实现
这篇文章的内容主要围绕C语言游戏项目球球大作战怎么实现进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!
项目代码
直接进入代码阶段吧,大家认真观看。
1、结构体
struct Ball //小球结构,玩家,食物,人工智障{ int x; int y; int r;//半径 DWORD color;//颜色 bool flag;//是否存在 };int score = 0;//分数struct Ball food[FOOD_NUM];struct Ball player;//玩家struct Ball ai[AI_NUM];
2、初始化
void GameInit(){ //播放背景音乐 mciSendString("open ./BallBGM.mp3 alias BGM", 0, 0, 0); //mciSendString("play BGM repeat", 0, 0, 0); //设置随机数种子 时间是在不断的变化的 srand((unsigned)time(NULL)); //找到每一个元素 for (int i = 0; i < FOOD_NUM; i++) { food[i].x = rand() % WIDTH; food[i].y = rand() % HEIGHT; food[i].flag = true;//刚开始食物是存在的,没有被吃掉 food[i].r = rand() % 6 + 1; food[i].color = RGB(rand() % 256, rand() % 256, rand() % 256); } //初始化玩家数据 player.x = rand() % WIDTH; player.y = rand() % HEIGHT; player.r = 18;//只要比最大的食物大就可以了 player.flag = true; player.color= RGB(rand() % 256, rand() % 256, rand() % 256); //初始化ai for (int i = 0; i < AI_NUM; i++) { ai[i].x = rand() % WIDTH; ai[i].y = rand() % HEIGHT; ai[i].r = rand() % 10 + 5; ai[i].flag = true; ai[i].color = RGB(rand() % 256, rand() % 256, rand() % 256); }}
3、绘制函数
void GameDraw(){ //防止闪屏 BeginBatchDraw(); setbkcolor(WHITE); cleardevice();//清屏 for (int i = 0; i < FOOD_NUM; i++) { if (food[i].flag) { setfillcolor(food[i].color);//设置填充颜色 solidcircle(food[i].x, food[i].y, food[i].r);//画一个填充圆 } else { food[i].x = rand() % WIDTH; food[i].y = rand() % HEIGHT; food[i].flag = true;//刚开始食物是存在的,没有被吃掉 food[i].r = rand() % 6 + 1; food[i].color = RGB(rand() % 256, rand() % 256, rand() % 256); } } //绘制玩家 setfillcolor(player.color);//设置填充颜色 solidcircle(player.x, player.y, player.r); settextcolor(GREEN); settextstyle(30, 0, "黑体"); setbkmode(0);//设置文字背景透明 outtextxy(player.x-50, player.y, "我是最亮的崽"); //输出分数 settextcolor(BLACK); char str[20]; sprintf(str,"分数:%d",score);//格式化字符串 outtextxy(20, 20, str); //绘制ai for (int i = 0; i < AI_NUM; i++) { if (ai[i].flag) { setfillcolor(ai[i].color);//设置填充颜色 solidcircle(ai[i].x, ai[i].y, ai[i].r);//画一个填充圆 } } EndBatchDraw();}
4、玩家控制函数
void keyControl(int speed){ //获取键盘消息,按得是哪一个键 _getch(); GetAsyncKeyState() windows系统函数 if ((GetAsyncKeyState('W') || GetAsyncKeyState(VK_UP)) && player.y >= 0)//按了上键 y不能小于0 { player.y -= speed; } if ((GetAsyncKeyState('S') || GetAsyncKeyState(VK_DOWN)) && player.y <= HEIGHT)//按了下键 { player.y += speed; } if ((GetAsyncKeyState('A') || GetAsyncKeyState(VK_LEFT)) && player.x >= 0)//按了左键 { player.x -= speed; } if ((GetAsyncKeyState('D') || GetAsyncKeyState(VK_RIGHT)) && player.x <= WIDTH)//按了右键 { player.x += speed; }}
5、吃食物函数
void eatFood(){ for (int i = 0; i < FOOD_NUM; i++) { if (food[i].flag && distance(food[i], player) <= player.r) { food[i].flag = false; player.r += food[i].r / 4; score++;//加分 } }}
6、电脑移动函数
void aiMove(){ for (int i = 0; i < AI_NUM; i++) { if (ai[i].flag) { ai[i].x += rand() % 5-2;// ?%5={0,1,2,3,4}-2=={-2,-1,0,1,2} ai[i].y += rand() % 5 - 2;//0 } }}
7、主函数
int main(int argc,char *agv[]){ initgraph(WIDTH, HEIGHT); GameInit(); while (1) { keyControl(1); GameDraw(); eatFood(); aiMove(); } getchar(); return 0;}
C语言是什么
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方式编译、处理低级存储器。
感谢你的阅读,相信你对"C语言游戏项目球球大作战怎么实现"这一问题有一定的了解,快去动手实践吧,如果想了解更多相关知识点,可以关注网站!小编会继续为大家带来更好的文章!
语言
函数
玩家
颜色
食物
项目
分数
代码
内容
文章
篇文章
结构
背景
低级
不断
人工
元素
兴趣
半径
字符
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术代替教师
小学网络安全教育活动简讯
数据库大佬公众号排行榜
软件开发各角色简称及职责
海岛坦克升级数据库
服务器upload文件夹位置
辽宁机电软件开发注意事项
ibm7914服务器
加油站清空数据库操作视频
大创 软件开发的阶段过程
网络安全五项法规
易到服务器新消息
团队软件开发的7个步骤
液位仪怎么传输回数据库
软件开发用户需求调研表
广东推荐的软件开发服务保障
怎么在同一个地址下复制数据库
网络服务器架设下载
四级的网络安全等级
服务器背板导向销
5g网络技术面临十大挑战
义乌工业软件开发是做什么的
暗影格斗3服务器位置
明日三个字的服务器
数据服务器安全
宁国先进软件开发服务攻略
服务器设置网络密码
恢复一个服务器的数据需要多久
数据库学生约束表达式
5G网络软件开发中专