C语言游戏编程之flappy birds
使用devc++编写的,devc++可完美运行
建议设计步骤:
实现小鸟加速下落——>实现小鸟按键上升——>实现障碍物移动出现——>实现小鸟碰撞障碍物时游戏结束——>实现障碍物循环出现
#include<stdio.h>
#include<conio.h>
#include<windows.h>
int bird_x,bird_y,score;
int width,birdup;
double high;
int block_x,block1_y,block2_y;
int bar_x,bar1_y,bar2_y;
int flag;
void hidecursor(){//隐藏光标 CONSOLE_CURSOR_INFO cursor_info={1,0};//第二个值为0表示隐藏光标 SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
}
void gotoxy(int x,int y){//将光标移到(x,y)位置 HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);COORD pos;pos.X=x;pos.Y=y;SetConsoleCursorPosition(handle,pos);
}
startup(){hidecursor();high=20;width=30;bird_x=width/2;bird_y=high/2;birdup=2;//每次按键小鸟上升的距离 block1_y=5;/*上障碍物*/block2_y=10;/*下障碍物*/ block_x=width/2+3;bar1_y=6;bar2_y=12;bar_x=width;
}
void show(){int i,j;gotoxy(0,0);for(i=0;i<high;i++){for(j=0;j<width;j++){if(i==bird_y&&j==bird_x)//输出小鸟 printf("@");else if(j==block_x&&(i<=block1_y||i>=block2_y))//输出第一个障碍物 printf("*");else if(j==bar_x&&(i<=bar1_y||i>=bar2_y))//输出第二个障碍物 printf("*");else printf(" ");}printf("\n");}printf("得分:%d\n",score);
}
void updatewithinput(){char input;if(kbhit()){input=getch();if(input==' '){flag=1;bird_y-=birdup;}}}
void updatewithoutinput(){//小鸟穿过障碍物 if(block_x-1==bird_x){if(block1_y>=bird_y||block2_y<=bird_y){printf("Game Over!\n");system("pause");}else score++;} if(bar_x-1==bird_x){if(bar1_y>=bird_y||bar2_y<=bird_y){printf("Game Over!\n");system("pause");}else score++;}//当小鸟落出屏幕时游戏也失败 if(bird_y>high){printf("Game Over!\n");system("pause");} //使小鸟无法飞出屏幕顶部 if(bird_y<=0){bird_y=0;bird_y++;}//实现障碍物的移动 if(block_x>=0)block_x--;if(block_x<0){block_x=width;int temp=rand()%(int)(high*0.8);block1_y=temp-high/10;block2_y=temp+high/10;}if(bar_x>=0)bar_x--;if(bar_x<0){bar_x=width;int temp=rand()%(int)(high*0.8);bar1_y=temp-high/10;bar2_y=temp+high/10;}//实现小鸟受重力加速下落 static int time;if(flag==1){time=0;flag=0;}time++;if(bird_y>0){bird_y++;if(time>=0&&time<=3)Sleep(500);else if(time>3&&time<=5)Sleep(300); else if(time>5&&time<=7)Sleep(200);else Sleep(100);}
}
int main(){startup();while(1){show();updatewithoutinput();updatewithinput();}return 0;
}
C语言游戏编程之flappy birds相关推荐
- c/c++游戏编程之用Easyx封装按钮
c/c++游戏编程之Easyx图形库基础(一) EasyX基础 c/c++游戏编程之Easyx图形库基础(二) 绘制图片 c/c++游戏编程之Easyx图形库基础(三) 用Easyx封装按钮 文章目录 ...
- python之torchlight使用_python游戏编程之pgzero使用介绍
Pgzero是在pygame基础上封装的一个简化版本软件包,使得在python环境下进行游戏编程更加简单.适合于入门学习者. 怎么用 开发一款简单的小游戏,我们可能会立刻想到以下几个要素: 1. 创建 ...
- 我的u3d游戏编程之路
因为最近进行求职的缘故,需要一个地方来show自己的所学所用.并非所有的求职网站都有相应的作品展示区域,因此选择了在csdn完成作品的展示.在这里只展示部分在我编程过程中完成的难点问题.有些东西也只是 ...
- mql4 c语言,MT4编程之MQL4编程语言介绍
语言介绍 MetaQuotes Language 4 (MQL4) 是一种新的内置型程序用来编写交易策略. 这种语言可以创建你自己的智能交易,使自己的交易策略能够完全自动地执行.而且,MQL4 还能自 ...
- 球球大作战Java编写_Unity经典游戏编程之:球球大作战
版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址:http://www.cnblogs.com/raymondking123/)以及微信公众号"优梦创客&qu ...
- Unity经典游戏编程之:球球大作战
版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址:http://www.cnblogs.com/raymondking123/)以及微信公众号"优梦创客&qu ...
- Libgdx游戏编程之Touchpad摇杆控制角色行走
先上效果: 以下素材来源网络,人物只有4向行走,遥感的图片就没有打包了,人物行走的用GDX Texture Packer打成atlas文件. 创建touchpad的代码 Touchpad.Touchp ...
- 瓷砖覆盖地板c语言程序,编程之美4.2 瓷砖覆盖地板
题目 这个题目的题意很容易理解,在一个N*M的格子里,我们现在有两种类型的 砖块,1 * 2 和 2 * 1,问一共有多少种方案,可以将整个N*M的空间都填满. 最简单的例子就是下面的了: 编程之美中 ...
- 网络编程多人聊天c语言,网络编程之TCP多人聊天
服务端转发信息: from socket import * from threading import Thread sockets=[] def main(): server_socket=sock ...
- 易语言编程之CE过驱动保护(ACE)调试教程
易语言编程之CE过驱动保护(ACE)调试 很多时候,驱动保护很让人头疼, 一用CE,就提示开了程序要结束, 你一搜到地址鼠标右键想看看访问和写入的代码地址,找基址时候,游戏就退出了, 这个教程教你 可 ...
最新文章
- java 2d划线 刷子_Java图形设计中,利用Bresenham算法实现直线线型,线宽的控制(NO2DGRAPHICS)...
- java filewriter_Java基础篇:什么是FileWriter
- 监控可以解决互联网骨干网问题吗?—Vecloud微云
- access exex控制pc_ownCloud/Nextcloud文件访问控制(Files Access Control)
- android使用post方法登录,使用REST API使用POST方法在Android中登录示例
- php 使用上传文件预览插件,bootstrap fileinput插件实现预览上传照片功能方法详解...
- js鼠标禁止右键、复制粘贴代码
- 国标 计算机机房,机房建设国家标准
- nsis检测vc2013运行环境vcredist_x86.exe是否已经安装
- Windows Server 2012 R2 安装IIS
- Android个人日记本开发背景,毕业设计(论文)-手机app移动开发论文个人心情日记本的设计实现 .doc...
- python生成三维点云包围盒
- FPGA自学:利用D触发器实现分频
- java添加java_home环境变量_如何正确设置jdk环境变量JAVA_HOME?
- 中级java面试问题大全及答案大全
- vue实现农历日期选择器
- #655 – 冒泡事件可能会被某些控件屏蔽(Bubbling Mouse Events Swallowed by Some Controls)
- python调试程序的方法_调试Python程序的四种方法
- 360应用宝上架流程及所需材料
- for循环语句执行顺序