范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

C语言项目实战气球射击游戏项目!200行代码轻松实现

  这篇文章主要为大家详细介绍了 C语言实现——《气球射击》小游戏, 示例源码介绍的非常详细,具有相当的参考价值,感兴趣的小伙伴们可以参考一下的!
  游戏介绍:
  《打气球》,英文名是Balloon Hit。就像我们在现实中见到的一样,只需要你用枪瞄准气球射击即可,玩法简单,容易上手!在时间范围内,打破气球的数量越多,排名越靠前。还等什么,来打破气球,打破记录。
  开发准备
  编译器:VS2013/2019最佳;
  插件:图形库插件easyX,涉及图片素材可以自行百度找也可以关注文末领取;
  效果图展示:
  配套讲解教程:「链接」
  源代码示例: #include #include #include//包含easyx图形库头文件 enum Attr { 	WIDTH=640, 	HEIGHT=480, 	MAX_BULL=15 }; //不同数据类型的集合 结构体 struct Battery//炮台 { 	int cx;//炮台中心位置 	int cy; 	int x; //炮管末端坐标,可以改变的 	int y; 	int len; 	int speed; 	double radian;//弧度 }; struct Bullet //子弹结构 { 	int x; 	int y; 	int vx;//xy轴分量 	int vy; 	int speed;//子弹速度; 	bool flag;	//子弹是否存在 	DWORD color;//子弹的颜色 }; struct Ball { 	int x; 	int y; 	DWORD color; 	int flag; }; struct Battery bat; struct Bullet bull[MAX_BULL]; struct Ball ball[MAX_BULL];  //初始化数据 void gameInit() { 	bat.cx = WIDTH / 2; 	bat.cy = HEIGHT - 10; 	bat.x = bat.cx; 	bat.y = bat.cy-bat.len; 	bat.len = 80; 	bat.speed = 7; 	//初始化气球 	for (int i = 0; i < MAX_BULL; i++) 	{ 		ball[i].x = rand() % WIDTH; 		ball[i].y = rand() % HEIGHT; 		ball[i].flag = true; 		ball[i].color= RGB(rand() % 256, rand() % 256, rand() % 256); 	} } void gameDraw() { 	//设置背景颜色 	setbkcolor(RGB(101, 144, 182)); 	cleardevice();  	//画气球 椭圆,尾巴,颜色 	setlinestyle(PS_SOLID, 1); 	setlinecolor(WHITE); 	for (int i = 0; i < MAX_BULL; i++) 	{ 		if (ball[i].flag) 		{ 			setfillcolor(ball[i].color); 			solidellipse(ball[i].x, ball[i].y, ball[i].x + 30, ball[i].y + 60); 			//画尾巴 			arc(ball[i].x, ball[i].y + 60, ball[i].x + 20, ball[i].y + 60 + 20, 0, 1.2); 			//画里面的弧,让它看起来更像气球 			arc(ball[i].x + 10, ball[i].y + 10, ball[i].x + 25, ball[i].y + 50, 0, 1.2); 		} 	}  	 	//printf("hello 同学们~"); 	//画炮台 	setlinestyle(PS_DASHDOT, 2); 	circle(WIDTH / 2, HEIGHT - 10, 60); 	setfillcolor(BLACK); 	solidcircle(WIDTH / 2, HEIGHT - 10, 5); 	//画炮管 	setlinecolor(BLACK); 	setlinestyle(PS_SOLID, 5); 	line(WIDTH / 2, HEIGHT - 10, bat.x, bat.y); 	//绘制子弹 	for (int i = 0; i < MAX_BULL; i++) 	{ 		if (bull[i].flag) 		{ 			setfillcolor(bull[i].color); 			solidcircle(bull[i].x, bull[i].y, 5); 		} 	} } //产生子弹 void createBulllet() { 	for (int i = 0; i < MAX_BULL; i++) 	{ 		if (bull[i].flag == false)//如果子弹不存在,则产生一个 		{ 			bull[i].flag = true; 			bull[i].x = bat.x; 			bull[i].y = bat.y; 			bull[i].color = RGB(rand()%256, rand() % 256, rand() % 256); 			bull[i].vx = bat.speed * cos(bat.radian); 			bull[i].vy = bat.speed * sin(bat.radian); 			break; 		} 	} } //子弹的移动 void bullMove() { 	for (int i = 0; i < MAX_BULL; i++) 	{ 		if (bull[i].flag) 		{ 			bull[i].x += bull[i].vx; 			bull[i].y -= bull[i].vy; 			//判断子弹是否超出了边界 			if (bull[i].x<0 || bull[i].x>WIDTH || bull[i].y < 0) 			{ 				bull[i].flag = false; 			} 		} 	} } //鼠标操作 void mouseControl() { 	//判断是否有鼠标操作 	if (MouseHit()) 	{ 		MOUSEMSG msg = GetMouseMsg(); 		bat.radian = atan2((double)bat.y - msg.y, (double)msg.x - bat.x); 		bat.x = bat.cx + cos(bat.radian) * bat.len; 		bat.y = bat.cy - sin(bat.radian) * bat.len; 		printf("..... "); 		//如果鼠标左键按下,发射子弹 		if (msg.uMsg == WM_LBUTTONDOWN) 		{ 			createBulllet(); 		} 	} } void 函数() {  } /* 	1,26个英文字母认识吧! 	2,知道简单的单词,create   */ void playBall() { 	//遍历气球 	for (int i = 0; i < MAX_BULL; i++) 	{ 		if (ball[i].flag) 		{ 			//遍历子弹 			for (int k = 0; k < MAX_BULL; k++) 			{ 				//判断坐标是否发生了碰撞 				if (bull[k].x>ball[i].x && bull[k].xball[i].y && bull[k].y
马云丁磊刘强东都在养猪,AI养猪来到了互联网风口?目前,世界上许多发达国家拥有着高度发达的养殖业。这些发达国家的养殖业,均有着高技术低人工,高产能,低消耗等特点。这其中,高技术的科技力量已经成为现代化养殖场一个关键性的指标。而目前颜值即生产力,三星Note10年度机皇上手体验继手机步入智能时代以来,增长趋势如同火箭一般飞速,但在这过程中,同质化严重成为了手机发展的绊脚石,许多厂商也在优胜劣汰中惨遭淘汰,唯有在工艺和功能上的创新才是未来手机行业的生存之道物联网黑科技新能源监控,公路局风光互补发电当智能网络监控的已经在大街小巷广为普及的时候,我们还有很多因为布线不便利而不能实行监控的重要安防区域还不能实现无死角覆盖,现今最流行的新能源监控无疑是最佳的选择。该系统由于利用的是想让消费者对餐饮安心?做直播餐饮服务后厨是食品生产经营链的最后一个环节,量大点多分散经营者素质良莠不齐的餐饮企业,加强社会监督,是实施有效监管的必然路径。社会共治是阳光厨房的推进核心,阳光厨房的可视化,增强了文明执法,如何利用科技的手段降低城管执法风险?近几年来,城管对城市市容市貌占道摆摊乱搭乱建等影响市容的现象整顿治理,经常引发社会矛盾而引起媒体关注和热点报道。因而在实际执法过程中,由于面对下岗工人无业游民等弱势群体,城管往往处8K徒增功耗?三星给你一个打开8K的正确方式在当下的客观条件下,8K分辨率是否有它的实际意义所在?在体验8K电视之前,很多人都会认为它是徒增功耗罢了。实则不然!数码君去年有幸体验过三星QLED8K电视之后,最深的感受就是QL升级7nm标压处理器荣耀MagicBookPro锐龙版3999元起2020年7月16日,荣耀MagicBook系列锐龙版新品发布会圆满举行。发布会上,荣耀正式推出全新MagicBook1415系列锐龙版及荣耀MagicBookPro锐龙版,全面升屹群山之巅瞰折叠盛世心系天下三星W215G全新发布2020年11月4日,中国电信携手三星电子,在南京国际博览中心举办了心系天下三星W215G新品发布会。十三年的陪伴,十二代的轮回,心系天下三星W215G将匠心工艺尊贵设计震撼科技集第三方横评OPPOK1vivoX23华为P20谁才是真旗舰?最近滑屏手机的不断发布给手机行业带来了一阵阵的思考,到底是应该继续在屏幕上下功夫,还是在整体的手机外观下功夫?最终大家讨论的结果是在我们需要更漂亮显示面积更宽广的屏幕的时候,更需要互联网新基建,智慧工地唤醒千亿市场?智慧工地解决方案兼顾施工方与监管单位的双向诉求,是解决当前工地管理难题的最佳方案,也是建筑行业互联网发展趋势。智慧工地立足打造新一代的施工企业,通过智慧工地系统的先进技术和综合应用TSINGSEE青犀视频上云网关获得中国声谷专项资金支持为贯彻落实五大发展行动计划和中国制造2025安徽篇,加快中国声谷(合肥高新区智能语音产业集聚发展基地)建设,促进智能语音及人工智能产业发展,省政府印发中国(合肥)智能语音及人工智能
不要忘记9月18日!今天南京试防空警报1931年9月18日从沉阳北郊六跳湖附近一声巨响揭露屈辱的历史未来14年超过3500万兄弟姐妹伤亡曾经美丽的土地被疯狂践踏89年过去了但是所有这些屈辱我们永远不会忘记敢忘今天上午1在工作运行中的液晶拼接屏拥有哪些特点优势作为当前国内应用非常火热的大屏幕多媒体显示设备,液晶拼接屏的应用领域越来广阔,如企事业单位交通指挥安全监控航空航天军事能源等,且得到了广大用户的众多好评。在使用的过程中,用户可以自论灰尘会对液晶拼接屏造成哪些伤害如今,液晶拼接屏的应用日益广泛,应用领域不断扩展,我们经常都可以看到它的身影,已经逐渐融入我们生活的方方面面。作为一款电子产品,液晶拼接屏拥有一定的使用寿命的,所以我们就要对它进行要做型号核准SRRC认证的有哪些设备必须?中国型号核准简称SRRC认证,是国家强制性认证,旨在将无线波段中的民用波段与军用波段区分开。是在无线电发射设备投入使用前的研制生产进口购置等环节,对其频谱参数技术指标依法进行技术管当下小程序运营难点有哪些?商家应该如何解决?现如今,越来越多的商家开始将线上线下结合经营,但是在经营中运营是很大的难点,让众商家苦不堪言,那么当下,小程序运营难点有哪些,商家应该如何解决呢?一小程序运营难点有哪些?1没有品牌餐饮店留存难?怎么锁定新老客户?这份私域引流实战送给你对于餐饮行业,其实有很多店客流是不错的,但是有很多店主不懂得把这些流量留下来,白白浪费了更大的流量价值。有店主说,现在让消费者办理会员卡关注公众号太难了。其实这些动作没有那么难,需中秋佳节来袭,商家如何巧用小程序营销提升店铺销量?中秋节作为国家传统节日,任何行业都在做节日营销,小程序也不例外。现在距离中秋节还有一个月的时间,对于已经利用得有店搭建了小程序的商家已经可以着手准备了。对于还没有搭建小程序的商家,传统实体店流量被瓜分,商家如何利用小程序突出重围?无论是线上还是线下,都在拼命抢夺流量,连锁店因为其品牌影响力,迅速吸引大批客户,传统实体店因为无法有效推广宣传,因此遭受重创,那么传统实体店应该如何与连锁企业做竞争呢?其实实体店想电动打蛋器怎么办理CE认证?电动打蛋器又分为手提电动打蛋器和座式带桶电动打蛋器,是用来将鸡蛋的蛋清和蛋黄打散充分融合成蛋液单独将蛋清和蛋黄打到起泡的工具。电动打蛋器出口欧盟需要办理CE认证,办理CE认证做电磁IPX3防水测试办理IPX3防水测试办理!IPX3的检测是喷溅水由垂直方向向任何一侧倾斜直到60度,没有产生有害影响,测试方法是摆管从垂直方向到60度方向,最大距离200毫米处喷溅。IPX3防水测试办嵌入式灯具CE认证怎么办理?嵌入式灯具CE认证怎么办理?灯具安装使用后,灯具本体结构是不外漏的,灯体其他部分是嵌入到建筑物或其他物体内而看不见的。嵌入式灯具及类似产品欧盟CE认证LVD低电压安全标准。CE认证