飞翔的小鸟 c++ 2.0版

大家好,我是小哼007

在进入正文之前,让我由衷感谢此文章的作者提供了《飞翔的小鸟》c语言版,本文章暂且称它为《飞翔的小鸟 1.0版》

大家也都知道c和c++是相通的,我学的又是c++,所以本文章使用的是c++(编辑器:Dev-c++)(若想改成c语言,请把“using namespace std”删除,再改一下头文件就可以了)

在编写《飞翔的小鸟 c++ 2.0版》时,本萌新本来想用双缓冲解决闪烁问题,但无奈自己看不懂,毕竟我还是一个编程年龄半年的初一学生……好尴尬 (麻烦大佬在评论区指点一下,谢谢)

废话不多说了,开始进入正文!

首先解决的是右移问题:

解决前:

解决后:

解决方法:

可以在输出柱子时判断柱子是不是在小鸟的左上方或左下方(不包括小鸟所在的行和列),如果是,先输出一个空格,再输出柱子;如果不是,输出柱子

if(i==xn_x && j>xn_y){printf("▓");
}
else   printf(" ▓");

接下来解决暂停问题:

解决方法:

按5键,进入死循环,按5键,退出死循环

input=getch();if(input=='5')    while(getch()!='5'){};//暂停继续

解决美观问题:

一开始的页面:
解决前:


没有居中,没有颜色!是不?

解决后:


是不是漂亮多了?

解决方法:

(在这里推荐两个颜色指令:system(用于全局)和SetConsoleTextAttribute(用于局部),具体可以参考百度)

system("color 0C");printf("                                                         \n");printf("                                                         \n");printf("                                                         \n");printf("                                                         \n");printf("                  =======================================\n");printf("                  =          --->飞翔的小鸟<---         =\n");printf("                  =                                     =\n");printf("                  =           空格控制小鸟移动          =\n");printf("                  =             5键暂停继续             =\n");printf("                  =                                     =\n");printf("                  =                                     =\n");printf("                  =             闪屏纯属正常            =\n");printf("                  =                         ----朱 * *  =\n");printf("                  =======================================\n");
游戏页面:
解决前:

解决后:

解决方法:

“当前得分”居中,加入颜色,加入分割线,改变柱子花纹

system("color 02");for(i=0;i<h;i++){for(j=0;j<=w;j++){if(i==xn_x && j==xn_y){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),14);printf("卐");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),2);}else if(j==b3&&(i<=b1||i>=b2)){if(i==xn_x && j>xn_y){printf("▓");}else   printf(" ▓");}else printf(" ");}printf("\n");}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),9);printf("================================================================================\n");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),11);printf("             ------------------>  当前得分:%d  <------------------\n\n\n",score);
}
结束页面:
解决前:

解决后:

解决方法:

改变颜色可形成巨大反差

system("color F0");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),252);printf("                           ------>  the end  <------\n");

最后加入标题:

system("title 飞翔的小鸟 2.0版  ---朱 * *");

到了最激动人心的时刻了!代码如下:(坚决反对积分下载!)

#include <ctime>
#include<cstdio>
#include <string>
#include <cstdlib>
#include <conio.h>
#include <windows.h>
using namespace std;
int h,w,c=0;
int score=0;//得分
int xn_x,xn_y,b1,b2,b3;
char asd;
void data(){h=15;w=25;xn_x=0;xn_y=w/3;b3=w;b1=h/4;b2=h/2;
}
void page(){int i,j;char dad ;if(c==0){system("color 0C");printf("                                                         \n");printf("                                                         \n");printf("                                                         \n");printf("                                                         \n");printf("                  =======================================\n");printf("                  =          --->飞翔的小鸟<---         =\n");printf("                  =                                     =\n");printf("                  =           空格控制小鸟移动          =\n");printf("                  =             5键暂停继续             =\n");printf("                  =                                     =\n");printf("                  =                                     =\n");printf("                  =             闪屏纯属正常            =\n");printf("                  =                         ----朱 * *  =\n");printf("                  =======================================\n");c++;dad=getch();}system("cls");system("color 02");for(i=0;i<h;i++){for(j=0;j<=w;j++){if(i==xn_x && j==xn_y){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),14);printf("卐");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),2);}else if(j==b3&&(i<=b1||i>=b2)){if(i==xn_x && j>xn_y){printf("▓");}else   printf(" ▓");}else printf(" ");}printf("\n");}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),9);printf("================================================================================\n");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),11);printf("             ------------------>  当前得分:%d  <------------------\n\n\n",score);
}
void no(){int randx;if(xn_y==b3){if(xn_x>b1&&xn_x<b2)score++;else{system("color F0");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),252);printf("                           ------>  the end  <------\n");c=3;asd=getch();}}xn_x++;if(b3==0){b3=w;b1=rand()%(h-5);randx=b1;b2=randx+h/4+2;}elseb3--;Sleep(120);}
void yes(){char input;if(kbhit()){input=getch();if(input==' ')     xn_x-=3;if(input=='5')    while(getch()!='5'){};//暂停继续  }
}
int main(){system("title 飞翔的小鸟 2.0版  ---朱 * *");data();//加载数据while(1){page();//页面no();//与用户无关变量yes();//与用户有关变量if(c==3)break;}return 0;
}

如果有一些改进这款游戏的点子,评论区见哦!

最后送上一千古名句:

关注美三代,点赞富一生!

飞翔的小鸟 c++ 2.0版相关推荐

  1. 飞翔的小鸟--easyx版

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 今天我们来尝试一下用easyx窗口创建飞翔的小鸟游戏 (相关游戏图片我已在末尾给出,欢迎大家保存收藏) 首先 ...

  2. Unity3d制作2D游戏飞翔的小鸟(FlappyBird)

    目录 一.学习方向 二.制作步骤 1.新建项目 3.设置为精灵模式 4.精灵图像分割 5.场景布局设置 6.录制小鸟飞翔动画 7.构建飞翔的小鸟让其响应 8.构建UI对象并让其响应 9.构建游戏背景并 ...

  3. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  4. python带你成功复刻热门手机游戏——飞翔的小鸟

    前言 大家早好.午好.晚好吖 ❤ ~欢迎光临本文章 飞翔的小鸟(游戏英文名:Flappy Bird) 一款由越南独立开发者开发的手机游戏,是之前非常流行的一款手机游戏 小游戏目标:让小鸟穿过管子,不要 ...

  5. 【Java基础】手把手教你用Java制作飞翔的小鸟

    课程介绍: 飞翔的小鸟,游戏中玩家只需通过点击方向键操纵让小鸟避开绿色管道等障碍物即可继续前进,如果小鸟碰到管道,游戏立即结束,那么如何用java编写一款属于自己的飞翔的小鸟游戏呢? 这个其实真的没有 ...

  6. C语言实现飞翔的小鸟小游戏

    参考视频https://www.bilibili.com/video/BV1Xo4y1R7hs 缺陷:撞柱子功能暂未实现 //飞翔的小鸟 #include<stdio.h>//C语言标准头 ...

  7. java小游戏 飞翔的小鸟,校园新手入门,分分钟带你玩转编程

    本课程讲解了飞翔的小鸟游戏的详细编写流程,即使你是刚入门java的新手,只要你简单掌握了该游戏所需要的javase基础知识,便可以跟随教程视频完成属于你自己的飞翔的小鸟游戏!同时还可以加深和巩固你对面 ...

  8. java小游戏——飞翔的小鸟(java初学作品)

    注:学习了java基础后,做出来的一个小作品,可以用来巩固学习 概述: 飞翔的小鸟能够作为Java基础的收官之作,包涵了Java很多的基础知识,在学习完Java基础后,尝试编写一些东西,能够起到很好的 ...

  9. java小游戏------Flappy Bird(飞翔的小鸟含源码)

    前言:本小游戏可作为java入门阶段收尾创作. 需:掌握面向对象的使用,了解多线程和异常处理等知识. 如上图所示:我们需要绘制背景,小鸟,障碍物,当然也包括游戏开始界面以及死亡界面. 一:思路解析: ...

最新文章

  1. JDBC数据源连接池(1)---DBCP
  2. Educational Codeforces Round 9 F. Magic Matrix 最小生成树
  3. 自学python要看哪些书籍-学习机器学习应该看哪些书籍?
  4. python连接池原理_python redis之连接池的原理
  5. 深入SQL SERVER 2000的内存管理机制
  6. Eclipse生成get,set方法,无参构造方法和有参构造方法
  7. java重置radiobutton的选项_求助:这道题显示radiobutton男女的功能和重置功能怎么做...
  8. Qt4_实现自定义委托
  9. sql 查询关联字段 最好取别名 不然会被第一个覆盖
  10. 有用的linux命令笔记
  11. 2020最新录制原生淘宝客APP视频搭建教程【最新原创】
  12. QCC频率校准工具定频
  13. 向日葵服务器维护,向日葵远程服务器
  14. ShuffleNet 系列(1): ShuffleNet v1 理论讲解
  15. qomo linux最新版本,Qomo Linux下一个版本将推驱动中心
  16. 移动开发----byte(字节)根据长度转成KB(千字节)和MB(兆字节)
  17. Oblog最新注入漏洞分析
  18. python获取他人的ip_python - 获取访问者的IP地址
  19. Spring Cloud 微服务项目实战 -
  20. 黑马点评--优惠卷秒杀

热门文章

  1. Markdown在表格中加入竖线的方法
  2. c语言qsort函数的用法与模拟实现
  3. CSS实现水平垂直居中的几种方式
  4. 龚昇:数学历史的启示
  5. 搞怪独特的520文案表情包分享来啦
  6. Java集成环信即时通讯(SpringBoot)
  7. Pycharm自动调整代码格式的快捷键Alt+Ctrl+L
  8. C语言输出菱形图案(二维数组)
  9. noip day2 聪明的质检员
  10. TSCAN + TMODEL处理点云数据生成DEM