资源简介
按空格跳跃
代码片段和文件信息
#define _CRT_SECURE_NO_WARNINGS
#include“header.h“
#include“music.h“
extern void makeMenu();
//数据
//1.图片变量
//2.鸟的结构体
//3.柱子的结构体
IMAGE backGround; //背景图
IMAGE myBigBird[2]; //鸟:背景图掩码图
IMAGE down[2];
IMAGE up[2];
IMAGE end[2];
struct pillar
{
int x;
int y;
int height;//柱子显示的高度
};
struct bird
{
int x;
int y;
int speed;//鸟下坠的速度
}flyBird = { 12430450 };
int score = 0;
//加载资源
void loadResource()
{
loadimage(&backGround “images\\background.bmp“); //背景图
loadimage(myBigBird “images\\birdy.bmp“); //鸟的掩码图 SRCAND
loadimage(myBigBird + 1 “images\\bird.bmp“); //鸟的背景图 SRCPAINT
loadimage(up “images\\upy.bmp“); //朝上柱子的掩码图
loadimage(up + 1 “images\\up.bmp“); //朝上柱子的背景图
loadimage(down “images\\downy.bmp“); //朝下柱子的掩码图
loadimage(down + 1 “images\\down.bmp“); //朝下柱子的掩码图
loadimage(end “images\\endy.bmp“); //结束图像的掩码图
loadimage(end + 1 “images\\end.bmp“); //结束图像的背景图
}
//画鸟
void drawBird()//SRCAND贴掩码图(遮盖图) SRCPAINT贴背景图
{
putimage(flyBird.x flyBird.y myBigBird SRCAND);
putimage(flyBird.x flyBird.y myBigBird + 1 SRCPAINT);
}
//按键处理
void keyDowm()
{
char userKey = _getch();
switch (userKey)
{
case ‘ ‘:
flyBird.y -= flyBird.speed;
Wing_sound();
break;
default:
break;
}
}
//初始化柱子
void initPillar(struct pillar* arrayPillar int i)
{
srand((unsigned int)time(NULL));
//随机高度
arrayPillar[i].height = rand() % 100 + 160; //160-259
//柱子的高度要不同pow(ab);
//while (arrayPillar[i].height == arrayPillar[(i + 1) % 3].height ||
// arrayPillar[i].height == arrayPillar[(i + 2) % 3].height)
//柱子的高度仅仅不相等还不行柱子高度相差还不能过小
while (pow((double)arrayPillar[i].height - (double)arrayPillar[(i + 1) % 3].height 2) <= 400 ||
pow((double)arrayPillar[i].height - (double)arrayPillar[(i + 2) % 3].height 2) <= 400)
/*
i (i+1)%3 (i+2)%3
i=0 0 1 2
i=1 1 2 0
i=2 2 0 1
*/
{
arrayPillar[i].height = rand() % 100 + 160;
}
//两个柱子间的间距为200
arrayPillar[i].x = 288 + i * 200;
arrayPillar[i].y = 0;
}
//画柱子
void drawPillar(struct pillar myPillar)
{
//myPillar.x 0 窗口坐标
//显示52*myPillar.height大小的图片
//从图片坐标(0320-myPillar.height) 取图片(图片坐标)
//朝下的柱子
//贴52*myPillar.height大小的柱子
putimage(myPillar.x 0 52 myPillar.height down 0 320 - myPillar.height SRCAND);
putimage(myPillar.x 0 52 myPillar.height down + 1 0 320 - myPillar.height SRCPAINT);
//朝上的柱子
//贴52*(320-myPillar.height)大小的柱子
putimage(myPillar.x 512 - (320 - myPillar.height) 52 320 - myPillar.height up 0 0 SRCAND);
putimage(myPillar.x 512 - (320 - myPillar.height) 52 320 - myPillar.height up + 1 0 0 SRCPAINT);
//两个柱子加起来一共贴出去了320就是一根柱子的长度
//512-(320-myPillar.height)=192+myPillar.height
}
//撞击地板以及越界判断
int hitFloor()
{
if (flyBird.
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 56 2020-08-19 01:31 可执行文件位置.txt
文件 102343 2020-08-19 01:31 游戏设计文档.pdf
目录 0 2020-08-19 01:31 源代码\
文件 5314 2020-08-19 01:31 源代码\game.cpp
文件 214 2020-08-19 01:31 源代码\header.h
文件 1359 2020-08-19 01:31 源代码\music.cpp
文件 341 2020-08-19 01:31 源代码\music.h
文件 1344 2020-08-19 01:31 源代码\start.cpp
文件 133757 2020-08-19 01:31 用户分析文档.pdf
目录 0 2020-08-19 01:31 素材库\
目录 0 2020-08-19 01:31 素材库\images\
文件 525368 2020-08-19 01:31 素材库\images\background.bmp
文件 6968 2020-08-19 01:31 素材库\images\bird.bmp
文件 6968 2020-08-19 01:31 素材库\images\birdy.bmp
文件 49976 2020-08-19 01:31 素材库\images\down.bmp
文件 49976 2020-08-19 01:31 素材库\images\downy.bmp
文件 33104 2020-08-19 01:31 素材库\images\end.bmp
文件 33104 2020-08-19 01:31 素材库\images\endy.bmp
文件 49976 2020-08-19 01:31 素材库\images\up.bmp
文件 49976 2020-08-19 01:31 素材库\images\upy.bmp
文件 525368 2020-08-19 01:31 素材库\images\尺寸分析.bmp
文件 63423 2020-08-19 01:31 素材库\images\柱子分析.jpg
目录 0 2020-08-19 01:31 素材库\music\
文件 2514904 2020-08-19 01:31 素材库\music\background.mp3
文件 139784 2020-08-19 01:31 素材库\music\Die.wav
文件 96020 2020-08-19 01:31 素材库\music\Hit.wav
文件 176444 2020-08-19 01:31 素材库\music\Point.wav
文件 352844 2020-08-19 01:31 素材库\music\Swooshing.wav
文件 28224 2020-08-19 01:31 素材库\music\Wing.wav
目录 0 2020-08-19 01:31 项目文件夹\
目录 0 2020-08-19 18:04 项目文件夹\flappyBird\
............此处省略49个文件信息
- 上一篇:QT信号槽开发
- 下一篇:STM32三菱PLC源码原理图
相关资源
- c++ 单链表
- c++ 编程修养(32条编程建议)
- VC++ 摄像头视频采集与回放源程序
- C++MFC模块讲解,黑发程序员课程整理
- 2048小游戏c语言实现
- 转 VC++ 实现电子邮件(Email)发送
- c++开发http服务端+客户端
- c++curllib传输json使用
- C++Builder XE7 update1 和谐文件亲测可用
- C++ Primer mobi
- c++调用C# COM 参数是结构体数组
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- 高版本Xcode 中 创建 C++ Class
- 使用 IBM Rational Systems Developer 和 Rati
- C++设计模式-好书
- C++设计模式pdf高清完整版
- 23种设计模式(C++实现版本
- C++设计模式 23种设计模式
- VC++ 服务程序编写及安装与卸载
- VC++6.0番茄西红柿VAXvirsual assist X完美破
- C++17 The Complete Guide
- C++学习指南语法篇代码+pdf(pdf可直接
- Visual_C++_数据采集与串口通信测控应用
- c++编写的串口通讯程序
- 基于改进的fcm算法的图像分割vc++
- VC++6.0 绿色版,免安装,非常好用。
- Microsoft Visual C++ 2005 Redistributable Pack
- VC++MFC课程设计的学生成绩管理系统
- c++实现的文件上传服务器
- 一个C++实现的源代码行数统计工具
评论
共有 条评论