Flappy bird 结题报告.

Slides:



Advertisements
Similar presentations
晕厥. 定义: 晕厥是指一时性的广泛的脑供血不足导致的短暂的意 识丧失,伴有肌张力消失而倒地的现象。 特点: 突然发生、迅速恢复、少有后遗症 与昏迷不同,昏迷意识丧失时间长,恢复慢而困难 部分晕厥发作之前出现头晕、耳鸣、出汗、视力模糊、 面色苍白、全身不适等前驱症状,此期称为前驱期。 发作之后出现乏力、恶心、呕吐、嗜睡、甚至大小便.
Advertisements

關懷生命防制菸害學前測驗 1. 癌症占十大死因 (1) 第三位 (2) 第二位 (3) 第一位 2. 吸菸而引起意外災害造成灼傷,大都指 (1) 大人 (2) 小孩 (3) 嬰兒 3. 二手菸為何毒性較強 ? 其主因含有 (1) 主流菸煙 (2) 側流菸煙 (3) 以上都有 4. 吸菸違害對大人與小孩均易引起.
第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
项目7 面向对象高级.
项目6 通用堆栈.
關懷生命防制菸害學前測驗 1. 癌症占十大死因 (1)第三位 (2)第二位 (3)第一位
專題報告 宇宙雙人射擊遊戲.
中医养生康复学绪论 任课教师:刘 婕 单 位:郑州工业应用技术学院 联系电话: ;
人 工 智 慧 報 告 五子棋AI設計 報告者 : 潘輝銘.
移动应用软件开发技术 第四讲:Meego应用开发基础
四資二甲 第三週作業 物件導向程式設計.
小 学 生 自护自救安全常识.
Memory Pool ACM Yanqing Peng.
面向对象的程序设计(一).
项目:贪吃蛇游戏设计 工作任务一:系统设计(system design) 工作任务二:豆类(Bean)设计
思 纳 公司动态 you you 优质服务是开拓市场的基础 获奖员工风采录 热烈庆祝“三 • 八”国际妇女节 获奖项目风采录 精 彩 导 读
102學年度預算編製說明會 主辦單位:會計室 102/02/22.
遊戲機制設計 遊戲設計文件( GDD ) 塞德克歐北來.
中国公务员制度 主讲:吴春华 教授 温志强 副教授.
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
自我介绍 ——陈丽敏.
项目:贪吃蛇游戏设计 工作任务三:块类(Block)设计 工作任务四:蛇类(Snake)设计
類別與物件 Class & Object.
2048 第14組 謝子健 4a 陳啟霖 4a 畢順傑 4a
第二十八章 開發新的VCL元件 雖然BCB內提供了很多VCL元件,但是一定還有一些我們常常需要用的介面並沒有製作成VCL元件,或是一些個人化的介面,我們也有需要做成VCL元件。在第十三章,我們將介紹如何自行開發新的VCL元件。
第9课 北美大陆上的新体制 导入新课 新课教学 课堂小结 知识结构 巩固练习
Go语言就业指南 岳东卫 技术总监 讲师的CSDN博客地址
基础综合 C++ Builder 显示与输入接口
Screen Layout & Background Image
程式設計實作.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
C#程序设计基础 $3 成员、变量和常量.
程序设计期末复习 黎金宁
Java程序设计 第9章 继承和多态.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
并发机制 结果应该为: 线程 1: 1 线程 1: 2 线程 1: 3 线程 1: 4 线程 1: 5 线程 2: 6 线程 2: 7
宣讀聖經 Reading Scriptures
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
第六章 安全衛生工作守則 6-1 前 言  6-2 訂定依據相關法令規定  6-3 工作守則製作程序及製作前應注意事項  6-4 如何訂定適合需要之安全衛生工作守則  6-5 結 論.
第7章 繼承/多型/介面 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或供拷貝.
辅导课程八.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第二章 Java基本语法 讲师:复凡.
计算机网络概述 计算机网络原理与技术.
C#程序设计基础 $3 成员、变量和常量.
C++复习2----类与对象.
保留字與識別字.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
回顾.
第二章 Java基本语法 讲师:复凡.
生命教育 媒材應用分享 電影 天外奇蹟(UP) 華盛頓高中 巫孟容.
订单汇总单功能详解 -芜花.
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
龍老師我不會Debug QQ.
辅导课程十一.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
硬幣遊戲解題詳解 王豐緒 銘傳大學資訊工程學系.
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
C# 匿名委派 + Lambda + Func 建國科技大學 資管系 饒瑞佶.
所得稅法第14條、第126條修正條文 薪資所得計算方式二擇一 定額減除 特定費用減除 維持現行薪資所得特別扣除額20萬元減除方式
JAVA 程式設計與資料結構 第三章 物件的設計.
對於成員(member)存取權的限制 成員的資料被毫無限制的存取,任誰都可以指定任意值給成員,Java語言為了防止這種現象的產生,規定:有一種成員的資料不能任由類別外部的任何人隨意存取。
本节内容 在堆中创建对象 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第二章 Java基本语法 讲师:复凡.
資料結構與C++程式設計進階 C++與資料結構 講師:林業峻 CSIE, NTU 7/ 5, 2010.
Presentation transcript:

Flappy bird 结题报告

Flappybird 课题介绍 我们Flappybird小课题旨在制作一款敏捷类小游戏。 游戏规则:游戏中玩家必须控制一只胖乎乎的小鸟,跨越由各种不同长度水 管所组成的障碍。单击鼠标左键小鸟就会往上飞,不断的点击就会不断的往高 处飞。放松手指,小鸟则会快速下降。所以玩家要控制小鸟一直向前飞行,然 后注意躲避途中高低不平的管子,游戏的得分是,小鸟安全穿过一个柱子且不 撞上就是1分。当然撞上就直接死亡,游戏结束。

控制台版

二、qt版实现方案 在这款游戏中: 有柱子,小鸟,地面这几个游戏对象。 另外还需要设置游戏开始的开始界面,引导界面,游戏中显示分数的分数板, 游戏结束界面。 我们把qblock类,qground类,qbird类的声明统一写在qgameobject.h内,各个 类中函数的实现统一写在qgameobject.cpp内。下面逐一解说。

1.游戏对象柱子(block)的功能实现 在qgameobject.h内声明qblock类 public: prviate : explicit qblock(QObject *parent = 0); static int randomnumber; void setrect(qreal,qreal,qreal,qreal); int Type; QRectF& getbindrect(); bool emited; void addframe(QPixmap); QRectF bindRect; void clearallframe(); int frameCount; void setEnabled(bool); QVector<QPixmap> pixmapList; void draw(QPainter *); bool enabled; void setType(int _type){Type=_type;} Void operate

2.游戏对象地面的实现 public: prviate : explicit qground(QObject *parent = 0); int x1; void setrect(qreal,qreal,qreal,qreal); int x2; QRectF& getbindrect(); bool emited; void addframe(QPixmap); QRectF bindRect; void clearallframe(); int frameCount; void setEnabled(bool); QVector<QPixmap> pixmapList; void draw(QPainter *); bool enabled; Void operate

3.游戏对象小鸟的实现 private: QRectF bindRect; int frameCount; public: explicit qbird(QObject *parent = 0);   void setrect(QRectF); void setrect(qreal,qreal,qreal,qreal); QRectF& getbindrect(); void addframe(QPixmap); void clearallframe(); void setEnabled(bool); void operate()  void draw(QPainter *); void change(){up=false;} void sety(){y=200;} void setv(){v=0;}   private: QRectF bindRect;   int frameCount; QVector<QPixmap> pixmapList; bool enabled; qreal y ; qreal v; int n ; bool up;

4.小鸟与地面、柱子、天空等障碍的碰撞测试 birddead()信号 Intersect() 函数 Gameover槽函数

5游戏记分显示板 在mainwindows.h内添加一个QLCDNumber:socredisplay scoredisplay= new QLCDNumber(3,this); scoredisplay->setGeometry(152,40,80,50); scoredisplay->setLineWidth(0); scoredisplay->setStyleSheet("QLCDNumber{color: white}"); scoredisplay->setVisible(false); void MainWindow::addscore() { gamescore++; scoredisplay->display(QString("%1").arg(gamescore,3,10,QChar('0')));}

6. 开始界面引导界面与游戏结束界面 1)开始界面 首先,创建C++文件Dialog.h与Dialog.cpp,专门编写开始界面的程序。在 Dialog类中加pushButton函数。 然后,在Dialog.cpp中完成对该函数的实现。其中如果pushButton clicked() 被激 发,QDialog发出accepted的信号 最后,在main.cpp中做相应更改 2)引导界面 引导界面要实现的功能比较简单,只需在开始界面的开始按钮被按下后显示, 而Game over 重新开始游戏时不显示。在Mainwindow类中加入私有成员start, 以记录游戏是否开始;若为未开始状态,第一次单击鼠标左键时显示画面。

6. 开始界面引导界面与游戏结束界面 3)游戏结束界面 用start记录游戏是否开始,用decide记录小鸟是否死亡。并根据所得分数显示 相应奖牌。

7. 初始化 游戏开始,分数为0 加载背景 设置分数显示板 创建游戏对象地面 创建游戏对象柱子 创建游戏对象小鸟  连接信号和槽机制

8. 常量处理 (省略单位:像素) 开始界面:550*399 游戏界面:384*512 小鸟大小:45*45 每帧间隔时间:30毫秒 柱子每帧移动距离:6 小鸟加速度:1像素点/30毫秒  

总结与体会 1:控制台应用到可视化界面 2:游戏对象的移动 3:碰撞判断 4:参考书籍与文档: 《QT Creator快速入门》 Jasmin.Blanchette Mark.Summerfield 《C++ GUI QT4编程》 《Qt及Qt Quick开发实战精解》 《Qt 高级编程》等 以及网上的博客