C语言项目实战气球射击游戏项目!200行代码轻松实现
这篇文章主要为大家详细介绍了C语言实现《气球射击》小游戏,示例源码介绍的非常详细,具有相当的参考价值,感兴趣的小伙伴们可以参考一下的!
游戏介绍:
《打气球》,英文名是BalloonHit。就像我们在现实中见到的一样,只需要你用枪瞄准气球射击即可,玩法简单,容易上手!在时间范围内,打破气球的数量越多,排名越靠前。还等什么,来打破气球,打破记录。
开发准备
编译器:VS20132019最佳;
插件:图形库插件easyX,涉及图片素材可以自行百度找也可以关注文末领取;
效果图展示:
配套讲解教程:链接
源代码示例:includestdio。hincludemath。hincludegraphics。h包含easyx图形库头文件enumAttr{WIDTH640,HEIGHT480,MAXBULL15};不同数据类型的集合结构体structBattery炮台{intcx;炮台中心位置intcy;intx;炮管末端坐标,可以改变的inty;intlen;intspeed;doubleradian;弧度};structBullet子弹结构{intx;inty;intvx;xy轴分量intvy;intspeed;子弹速度;boolflag;子弹是否存在DWORDcolor;子弹的颜色};structBall{intx;inty;DWORDcolor;intflag;};structBatterybat;structBulletbull〔MAXBULL〕;structBallball〔MAXBULL〕;初始化数据voidgameInit(){bat。cxWIDTH2;bat。cyHEIGHT10;bat。xbat。cx;bat。ybat。cybat。len;bat。len80;bat。speed7;初始化气球for(inti0;iMAXBULL;i){ball〔i〕。xrand()WIDTH;ball〔i〕。yrand()HEIGHT;ball〔i〕。flagtrue;ball〔i〕。colorRGB(rand()256,rand()256,rand()256);}}voidgameDraw(){设置背景颜色setbkcolor(RGB(101,144,182));cleardevice();画气球椭圆,尾巴,颜色setlinestyle(PSSOLID,1);setlinecolor(WHITE);for(inti0;iMAXBULL;i){if(ball〔i〕。flag){setfillcolor(ball〔i〕。color);solidellipse(ball〔i〕。x,ball〔i〕。y,ball〔i〕。x30,ball〔i〕。y60);画尾巴arc(ball〔i〕。x,ball〔i〕。y60,ball〔i〕。x20,ball〔i〕。y6020,0,1。2);画里面的弧,让它看起来更像气球arc(ball〔i〕。x10,ball〔i〕。y10,ball〔i〕。x25,ball〔i〕。y50,0,1。2);}}printf(hello同学们);画炮台setlinestyle(PSDASHDOT,2);circle(WIDTH2,HEIGHT10,60);setfillcolor(BLACK);solidcircle(WIDTH2,HEIGHT10,5);画炮管setlinecolor(BLACK);setlinestyle(PSSOLID,5);line(WIDTH2,HEIGHT10,bat。x,bat。y);绘制子弹for(inti0;iMAXBULL;i){if(bull〔i〕。flag){setfillcolor(bull〔i〕。color);solidcircle(bull〔i〕。x,bull〔i〕。y,5);}}}产生子弹voidcreateBulllet(){for(inti0;iMAXBULL;i){if(bull〔i〕。flagfalse)如果子弹不存在,则产生一个{bull〔i〕。flagtrue;bull〔i〕。xbat。x;bull〔i〕。ybat。y;bull〔i〕。colorRGB(rand()256,rand()256,rand()256);bull〔i〕。vxbat。speedcos(bat。radian);bull〔i〕。vybat。speedsin(bat。radian);break;}}}子弹的移动voidbullMove(){for(inti0;iMAXBULL;i){if(bull〔i〕。flag){bull〔i〕。xbull〔i〕。vx;bull〔i〕。ybull〔i〕。vy;判断子弹是否超出了边界if(bull〔i〕。x0bull〔i〕。xWIDTHbull〔i〕。y0){bull〔i〕。flagfalse;}}}}鼠标操作voidmouseControl(){判断是否有鼠标操作if(MouseHit()){MOUSEMSGmsgGetMouseMsg();bat。radianatan2((double)bat。ymsg。y,(double)msg。xbat。x);bat。xbat。cxcos(bat。radian)bat。len;bat。ybat。cysin(bat。radian)bat。len;printf(。。。。。);如果鼠标左键按下,发射子弹if(msg。uMsgWMLBUTTONDOWN){createBulllet();}}}void函数(){}1,26个英文字母认识吧!2,知道简单的单词,createvoidplayBall(){遍历气球for(inti0;iMAXBULL;i){if(ball〔i〕。flag){遍历子弹for(intk0;kMAXBULL;k){判断坐标是否发生了碰撞if(bull〔k〕。xball〔i〕。xbull〔k〕。xball〔i〕。x30bull〔k〕。yball〔i〕。ybull〔k〕。yball〔i〕。y60){bull〔k〕。flagfalse;ball〔i〕。flagfalse;}}}}}intmain(){需要一个窗口,init初始化graphinitgraph(WIDTH,HEIGHT,SHOWCONSOLE);gameInit();双缓冲绘图BeginBatchDraw();while(1){gameDraw();FlushBatchDraw();mouseControl();bullMove();playBall();}EndBatchDraw();return0;}
未完成的部分功能代码,大家也可以自己先去想想试试,每一次的思考就是你进步的过程!
如果学习的过程中有什么问题,以及本项目有什么不懂的地方,都可以来找我交流,我来帮你!
那么今天的分享就到这里了,后续会更新更多精彩项目或者知识内容的,大家要好好学C语言C哟
写在最后:对于准备学习CC编程的小伙伴,如果你想更好的提升你的编程核心能力(内功)不妨从现在开始!
编程学习书籍分享:
编程学习视频分享:
整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
对于CC感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦!可以领取一些CC的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!
魔兽副本介绍剃刀高地在那错综复杂的荆棘迷宫中居住着大群忠诚的野猪人军队以及他们的高等牧师亡首部族。然而最近,一股阴影力量笼罩了这个原始的洞穴。亡灵天灾的人在巫妖寒冰之王亚门纳尔的带领下控制了……
中超1逆转武汉队成功保级,罗皓孙凯建功中超联赛最后一轮打响,武汉队迎战重庆两江竞技。上半场武汉队由洛佩斯率先破门,下半场重庆队3分钟2球,罗皓、孙凯建功,重庆队反超比分。最终,重庆队21逆转武汉队,以保级组第5的成……
赵丽颖真的是闷声干大事!新代言颜值大飙升,穿粉裙气质罕见开挂赵丽颖自从新剧开机后,基本就属于断联的情况,不过从最新曝光的新代言来看,赵丽颖也是闷声干大事的人。在曝光最新代言中,赵丽颖可谓是形象大变,不仅颜值出众,而且胖了一些的她反而少女……
哪个皮肤是六元皮肤的天花板?唯有两款超过9分,达摩拳王上榜大家好我是指尖,六元皮肤的受欢迎程度远比你想象得更高,低廉的价格能买到勇者的皮肤,的确是一些零冲党们的开口神皮,王者荣耀运营了这么久了,粗略计算一下已经上了24款六元皮肤(野性……
经常睡到半夜23点就醒,是怎么回事?是身体出问题了吗?拥有高质量的睡眠是正确保养身体的一种表现,其实人体一生将近13的时间都是在睡眠中度过的,如果拥有一个好的睡眠,身体各个脏器组织才能得到良好的修复,是维持机体健康的前提。但……
国内油价或迎五连降,8月19日油价调整最新消息8月23号晚上的24时国内第16轮的油价调整将正式开启,经过8个工作日的油价统计,新一轮的油价调整走势如何呢?今年的油价五连降会来吗?国际油价消息今天是8月19日星期五,……
这个季节到昌平,会有怎样的体验?这个季节到昌平会有怎样的体验?末伏已过,体感马上舒适了许多,这几天昌平正是风和日丽又不闷热的天气,非常适合外出运动或出游。近期,第十三届北京奥运城市体育文化节也选在昌平举……
张天爱机场穿搭Look1外套:LOEWESS22格纹拼色翻领长衬衫多色背心:SMFKCompass黑夜之花连身舞蹈背心午夜黑颈环:SMFKCompass十字花细复古皮质颈环……
垚和健闻真正的营养叫做营养均衡失去健康,如同杯子打碎,再去修复,是非常困难的。但是,在杯子掉下之前,移动一个安全的位置,就非常容易。好在我们的身体,比杯子多了一种能力,就是,进食,提供身体更新所需要的……
为什么不是夫妻关系也可以入住酒店同一间房?前台有这几类人如今人们的收入提高了,外出的机会也多了,比如说出去旅游,或者是工作上有安排需要去外地等等,在这样的情况下,人们都需要在外面住酒店。(此处已添加小程序,请到今日头条客户端查看)……
众望所归!守望归来全新战令让玩家大呼我可以在《守望先锋》归来宣布全网免费的时候,就已经有玩家在猜测,接下来是否就应该再出个类似通行证的系统,这样才能够保证游戏的持续收入。果不其然,归来很快就宣布了战令系统的推出计……
给巴萨法务记一功!孔德终于注册上了网罗天下体育事,每每想来吐一槽。今天有啥值得说一说的呢?巴萨引用特例为孔德注册周日,巴塞罗那俱乐部公布了本轮西甲主场对阵巴拉多利德的大名单,今夏新加盟球队的法国后卫……