C语言游戏教学项目,有C基础和对小游戏感兴趣的可以看看,做出来成就感爆棚~

使用的编译器是VS2013,图片素材,可以自己百度寻找素材图片,也可以在文章最后领取哦~

效果图:

话不多说,接下来就奉上我们的源码了(写的时候包含了一些笔者的注释,勿怪勿怪):

/*1.创建一个可视化窗口2.显示一张背景图*/#include <graphics.h>#include <stdlib.h>#include <conio.h>#include <stdio.h>#include <time.h>#include <mmsystem.h>#pragma comment(lib,"winmm.lib")/*stdlib.h  : Sleepstdio.h   : C语言头文件conio.h   : _getch()graphics.h: 图形库头文件写的时候报错,需要安装*/int main(){//288*608srand((unsigned int)time(NULL));initgraph(288, 608);struct 柱子 pillar[3];for (int i = 0; i < 3; i++){initPillar(pillar, i);//让柱子之间有差距pillar[i].x = 288 + i * 150;}loadResource();while (1){putimage(0, 0, &background);drawBird(flyBird.x, flyBird.y);flyBird.y += 10;for (int i = 0; i < 3; i++){pillar[i].x -= 10;if (pillar[i].x < (-52 - 150)){initPillar(pillar, i);}}for (int i = 0; i < 3; i++){drawPillar(pillar[i]);}//一定要先判断按键是否按下if (_kbhit()){keyDown();}if (hitFloor()){actionGameOver();break;}Sleep(50);}closegraph();return 0;}IMAGE background;IMAGE myBird[2]; //鸟有两张 myBird[0] myBird[1]IMAGE overImg[2];IMAGE down[2];IMAGE up[2];//鸟的属性struct 鸟{int x;int y;int speed; //上跳速度};struct 鸟 flyBird = { 124, 0, 100 };struct 柱子{int x; //上面柱子的起始坐标int y;int h; //上面柱子显示的高度};//加载资源void loadResource(){loadimage(&background, "background.bmp");loadimage(&myBird[0], "birdy.bmp", 48, 48);loadimage(&myBird[1], "bird.bmp", 48, 48);loadimage(&overImg[0], "endy.bmp");loadimage(&overImg[1], "end.bmp");loadimage(&down[0], "downy.bmp");loadimage(&down[1], "down.bmp");loadimage(&up[0], "upy.bmp");loadimage(&up[1], "up.bmp");}//画鸟--->透明贴图技术void drawBird(int x, int y){//SRCAND方式贴掩码图putimage(x, y, &myBird[0], SRCAND);//SRCPAINT 方式贴背景图putimage(x, y, &myBird[1], SRCPAINT);}//多线程DWORD WINAPI playMusic(LPVOID lpParamer){mciSendString("open jump.mp3", 0, 0, 0);mciSendString("play jump.mp3 wait", 0, 0, 0);mciSendString("close jump.mp3", 0, 0, 0);return 0;}//应用技术-->所有编程行业通用//没有学的同学,想办法去拓展一下//并发编程,网络编程,数据库编程//鸟的按键处理void keyDown(){/*mciSendString("指令",0,0,0);指令:open:打开play:播放pause:暂停wait:等待stop:停止close:关闭*/char userKey = _getch(); //_getch();switch (userKey){case ' ':flyBird.y -= flyBird.speed;CreateThread(NULL, NULL, playMusic, NULL, NULL, NULL);break;default:break;}}int  hitFloor(){if (flyBird.y <= 0 || flyBird.y >= (608 - 96))return 1;return 0;}void actionGameOver(){//结束图片初始位置int  x = 50;int y = 608;while (y >= 240){putimage(0, 0, &background);putimage(x, y, &overImg[0], SRCAND);putimage(x, y, &overImg[1], SRCPAINT);y -= 50;Sleep(50);}Sleep(5000);}void  initPillar(struct 柱子 pillar[], int i){pillar[i].h = rand() % 100 + 160; //[160,259];pillar[i].x = 288;pillar[i].y = 0;}void drawPillar(struct 柱子 pillar){//上面的柱子putimage(pillar.x, 0, 52, pillar.h, &down[0], 0, 320 - pillar.h, SRCAND);putimage(pillar.x, 0, 52, pillar.h, &down[1], 0, 320 - pillar.h, SRCPAINT);//下面那根柱子putimage(pillar.x, 512 - (320 - pillar.h), 52, 320 - pillar.h, &up[0], 0, 0, SRCAND);putimage(pillar.x, 512 - (320 - pillar.h), 52, 320 - pillar.h, &up[1], 0, 0, SRCPAINT);}

//小作业:

//碰上面柱子的求解

//碰下面柱子的柱子

最后呢,笔者将剩下了这两部分源码给去掉了,目的想必大家也知道,可不要直接照着源码敲,而不自己去理解哦!你们应该学着自己去理解这个小游戏,然后呢,自己写出剩下的部分哦!希望我们能够在学习C语言C++的路上越走越远,共勉!

自学C/C++编程难度很大,不妨和一些志同道合的小伙伴一起学习成长!

C语言C++编程学习交流圈子,【点击进入】微信公众号:C语言编程学习基地

有一些源码和资料分享,欢迎转行也学习编程的伙伴,和大家一起交流成长会比自己琢磨更快哦!

C/C++编程笔记:飞翔的小鸟(Flappy Bird)——C语言版本相关推荐

  1. 飞翔的小鸟 Flappy Bird

    C语言实现飞翔的小鸟游戏 操纵小鸟使其不要掉下来或着撞上烟囱 windows平台实现 代码如下: game.h: #pragma once#include <stdio.h> #inclu ...

  2. 飞翔的圆(Flappy Bird)游戏源码完整版

    2019独角兽企业重金招聘Python工程师标准>>> 这个源码是一个不错的休闲类的游戏源码,飞翔的圆(Flappy Bird)游戏源码V1.0,本项目是一个仿Flappy Bird ...

  3. JAVA项目:Java实现飞扬的小鸟(Flappy Bird)

    飞扬的小鸟(Flappy Bird) 需求描述 游戏加载完毕点击界面即可开始游戏. 鼠标点击控制小鸟飞行,或者通过键盘控制小鸟的前后上下也可以,不要撞到管道哦! 控制好小鸟越过障碍飞得更远,获得更高的 ...

  4. Scratch创意编程(五):Flappy Bird

    Flappy Bird这款游戏相比就算没有玩过,大家也都听说过. 这款游戏早几年火起来,一直到现在还有很多人在玩. 游戏方式非常简单: 玩家控制一只小鸟,躲避柱形障碍物,穿过一个障碍物加一分,一旦碰到 ...

  5. Unity快速入门之傻瓜小鸟“Flappy Bird”(三)

    目的:掌握基本2D游戏开发技巧 知识点: 1.学习UI界面的开发(UGUI) 2.循环往复简单算法 3.脚本之间的常用数据传值 4.2D游戏开发环境 5.2D精灵动画与层的设置 开发步骤 建立良好的目 ...

  6. 飞翔的小鸟(bird)

    飞翔的小鸟 示例 HTML CSS JS 更多有趣示例 尽在 知屋安砖社区 示例 HTML <script src="http://threejs.org/build/three.mi ...

  7. c语言图形库三角形,Flappy Bird C语言实现及C图形库Easyx的使用

    学习Eaxy X图形库后我的成果: 花了一周时间做出并完善了Flappy Bird,目前功能如下: 1. 背景的显示 2. 加入小鸟image 3. 小鸟自由下落,按空格键/鼠标右键后上升 4. 加入 ...

  8. flappy+bird+c语言程序,C语言实现flappy bird游戏

    本文实例为大家分享了C语言实现flappy bird的具体代码,供大家参考,具体内容如下 #include #include #include //定义全局变量 int high,width; //边 ...

  9. C语言编程笔记丨一种很酷的 C 语言技巧

    C语言常常让人觉得它所能表达的东西非常有限.它不具有类似第一级函数和模式匹配这样的高级功能.但是C非常简单,并且仍然有一些非常有用的语法技巧和功能,只是没有多少人知道罢了.指定的初始化很多人都知道像这 ...

  10. flappy bird c语言,C语言实现flappy bird

    #include #include #include //定义全局变量 int high,width;//边界 int bird_x,bird_y; //小鸟坐标 int bar_y;//挡板坐标 i ...

最新文章

  1. Android Handler主线程和一般线程通信的应用分析
  2. 14大招打造你的平面设计创意
  3. 【风控建模】风控分类模型种类(决策、排序)比较与模型评估体系(ROC/gini/KS/lift)
  4. Linux查看端口使用状态及启动
  5. gitlab 开源项目 星_Docker实战之Gitlab搭建
  6. MATLAB对矩阵中元素的访问
  7. 一个简单的基于socket的通讯处理程序
  8. 云原生时代,阿里云联手博睿数据让IT运维可观测更智能
  9. CSS 类选择器详解——CSS 多类选择器
  10. python中奖号_Python分析彩票记录并预测中奖号码过程详解
  11. slqite3库查询数据处理方式_绝活!十一个优质React Hook库, 收藏备用
  12. Windows Server 2012活动目录基础配置与应用(新手教程)之9---了解组策略
  13. Recoverit for Mac(数据恢复软件)
  14. Android插件实战总结之TwsPluginFramework
  15. 点评一下阿提亚和黎曼猜想
  16. kotlin入门教程
  17. Linux发行版Ubuntu教程
  18. 计算机平面设计中汉字的使用艺术
  19. 前端开发和后端开发的区别
  20. Android拍摄raw照片,这20款摄影APP,让你的照片飞上天!

热门文章

  1. python基金筛选_【量化投资工具】抓取沪深股市所有指数关联的公募基金列表(含ETF、增强、分级等)...
  2. 7个引人注目的创新物联网应用
  3. [Place 30-58] IO placement is infeasible. Number of unplaced terminals (1) is greate
  4. 多日之苦终得救:“威金”专杀工具发布(转)
  5. Android集成谷歌定位sdk,Android 地图sdk,集成了百度、高德、谷歌三种地图
  6. 学习Java的第六天:for循环,while循环,do-while循环
  7. Vue学习笔记:获取文件唯一标识 md5值
  8. 微型计算机每秒计算,微型计算机主要技术指标
  9. Android Facebook登陆获取 Key Hashes值
  10. 淘宝评论不回复买家怎样看到买家评论,如何提前处理买家差评