C语言游戏项目球球大作战怎么实现
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章的内容主要围绕C语言游戏项目球球大作战怎么实现进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!项目代码
千家信息网最后更新 2025年02月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安全错误
数据库的锁怎样保障安全
济南锦加软件开发公司
基因型和基因表达量关联数据库
内存数据库与缓存
数据库管理和维护内容
京东科技互联网养老院
我的世界服务器地狱门猪人
赛默飞质谱的数据库是什么
工程项目软件开发公司
主机是服务器么
南通泰达互联网科技有限公司
建立数据库的选址
红警2战网新手服务器
服务器机柜pdu
中国水稻数据库中心龙稻31
计算机网络技术专业出来都干啥了
怎么根据ER图设计数据库表
服务器往h5推送消息
数据库建表语句最后加in
网络安全厂商普
易语言链接数据库6
网络技术公司cisco
网络安全法实施后的成效
长治顿付网络技术有限公司
数据库恢复的技术有
网贷软件开发公司排名
网络安全信息小组长
STL对软件开发的例子
郑州电脑软件开发学院
科技互联网巨头造车
jsp怎么连接数据库