雷 霆 战 机 By—谷恩轩&余万全.

Slides:



Advertisements
Similar presentations
五脏六腑话养生 董飞侠 医学博士 副教授 硕士研究生生导师 副主任中医师 美国贝勒医学院高级访问学者.
Advertisements

- 正大集團的重組脫困 - 指導老師:陳曉蓉 學生:林廷宇. 基本介紹 1921 年,一對華人兄弟 — 謝易初、謝松輝移居至 泰國曼谷。兩兄弟為自己取了一個泰國姓氏:差 拉瓦農 差拉瓦農兄弟白手起家,創建了正大莊菜籽行。 現已成長為一家擁有兩百多家子公司的大型集團, 它的附屬公司遍及泰國、新加坡、香港、印度尼.
四川财经职业学院会计一系会计综合实训 目录 情境 1.1 企业认知 情境 1.3 日常经济业务核算 情境 1.4 产品成本核算 情境 1.5 编制报表前准备工作 情境 1.6 期末会计报表的编制 情境 1.2 建账.
第 2 梯次鑑定提報特教通報網系統操作 學年度教育部國民及學前教育署 高級中等學校身心障礙學生鑑定.
主编:邓萌 【点按任意键进入】 【第六单元】 教育口语. 幼儿教师教育口 语概论 模块一 幼儿教师教育口语 分类训练 模块二 适应不同对象的教 育口语 模块三 《幼儿教师口语》编写组.
第一組 加減法 思澄、博軒、暐翔、寒菱. 大綱 1. 加減法本質 2. 迷思概念 3. 一 ~ 七冊分析 4. 教材特色.
海南医学院附 院妇产科教室 华少平 妊娠合并心脏病  概述  妊娠、分娩对心脏病的影响  心脏病对妊娠、分娩的影响  妊娠合病心脏病的种类  妊娠合并心脏病对胎儿的影响  诊断  防治.
植树节的由来 植树节的意义 各国的植树节 纪念中山先生 植树节的由来 历史发展到今天, “ 植树造林,绿化祖国 ” 的热潮漫卷 了中华大地。从沿海到内地,从城市到乡村,涌现了多少 造林模范,留下了多少感人的故事。婴儿出世,父母栽一 棵小白怕,盼望孩子和小树一样浴光吮露,茁壮成长;男 女成婚,新人双双植一株嫩柳,象征家庭美满,幸福久长;
客户协议书 填写样本和说明 河南省郑州市金水路 299 号浦发国际金融中 心 13 层 吉林钰鸿国创贵金属经营有 限公司.
浙江省县级公立医院改革与剖析 马 进 上海交通大学公共卫生学院
第二章 环境.
教师招聘考试 政策解读 讲师:卢建鹏
了解语文课程的基本理念,把握语文素养的构成要素。 把握语文教育的特点,特别是开放而有活力的语文课程的特点。
北台小学 构建和谐师生关系 做幸福教师 2012—2013上职工大会.
福榮街官立小學 我家孩子上小一.
第2期技職教育再造方案(草案) 教育部 101年12月12日 1 1.
企业员工心态管理培训 企业员工心态管理培训讲师:谭小琥.
历史人物的研究 ----曾国藩 组员: 乔立蓉 杜曜芳 杨慧 组长:马学思 杜志丹 史敦慧 王晶.
教育部高职高专英语类专业教学指导委员会 刘黛琳 山东 • 二○一一年八月
淡雅诗韵 七(12)班 第二组 蔡聿桐.
第七届全国英语专业院长/系主任高级论坛 汇报材料
小數怕長計, 高糖飲品要節制 瑪麗醫院營養師 張桂嫦.
制冷和空调设备运用与维修专业 全日制2+1中等职业技术专业.
会计信息分析与运用 —浙江古越龙山酒股份有限公司财务分析 组员:2006级工商企业管理专业 金国芳 叶乐慧 魏观红 徐挺挺 虞琴琴.
日月光·伯爵居项目介绍.
香港故事之 三年零八個月的艱苦歲月 組員: 梁珮瑩 吳遠莉 李琪 李青儀 方松皓.
谷雨节气模板.
按開憂鬱症的結 ---穴位玄機妙用 溫嬪容 醫師.
紓壓腹部撇步 彭易璟 老師 第10組 4A055935林資淳 4A155002詹柏廷 497C0095林千慈 498J3041 郭人慈.
傳統武術的本質與內涵 M111甲孝班張天瑋 指導教授:李開濟博士.
Word高级应用——制作毕业论文 Word高级应用——制作毕业论文 6..
我的故事 ————往事回首.
中信信诚-淮安项目.
觀念‧許文龍和他的奇美王國 組別:第13組 組員:陳欣婷 24號 陳子瑄 35號 陳彥良 50號 指導老師:邱素伶老師.
郭子光教授从肺肾虚损辨治早中期慢性肾功能不全的经验
女生成功靠什么? 09英本四班 傅柏双.
国际投资环境罗氏评级法 美国.
彰化縣教師會 導護問題知多少? 理事長:許麗芳老師 報告人:廖銘潭老師   .
社会保障学 第5章 失业保险.
主 题 班 会 团 结   协 作    力 量.
理想.
傷 仲 永 王安石 S 孫子潔.
垃圾食品與肥胖的關係 敏盛綜合醫院 陳美月 營養師.
固定与搬运技术 义乌市中心医院 陈红卫.
代表机构年报操作指南 (代表机构端) 二〇一一年二月.
指導教授 : 黃顯宗教授 報告學生: 蔡子健 蔣忠霖 侯嘉東 劉乃慈 江文勝 報告日期 :
中鸣虚拟搜救比赛项目 (一人) 现场主题创作(40%)(一人) 3D虚拟搜救(60%)(一人).
澎湖縣設置離島免稅商店之效益分析與經驗分享
案例分析 胎记美容记 第6小组
認識拿破崙˙波拿巴 關於一位運氣很差的矮子的趣事兩三件 我不是矮子!! 本日主角 重點不是這個吧? 惡搞人員:橘蘋3顆和一隻小精靈.
第八組 組員:07黃佩瑄 13吳姿毅 14葉芷芸 26黃欣蓮 34林思妤 48潘婷蓉
商务汇演 工作总结 企业文化 冰爽水元素通用模板 洛天PPT作品.
人生五色臉 年輕十歲必學的小動作,九個保持身體健康的的小訣竅 人們常在不經意間做些小動作,並認為這是身體的本能反應,
创办紫金矿业学院 为培养中国一流的矿业人才助力 ——合作创办紫金矿业学院的思路与实践
第十二章 幼儿英语渗透活动 第二节 幼儿英语渗透活动的组织与实施
幼兒多元文化教育 台灣新住民幼兒的文化特性、特色 江佳蓉 陳怡儒 陳盈如
「簡易水土保持申報書」 內容及送審流程之探討
C File System.
程式設計 博碩文化出版發行.
大綱 *專題演講介紹 *大陸醫療的改革與發展 *海報發表文章分享 2012海峽兩岸醫院院長論壇行後報告 ‧台北
一、文件的基本概念 第十三章 文 件 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一
保留字與識別字.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
本节内容 文件读写 视频提供:昆山爱达人信息技术有限公司.
本节内容 访问模式 视频提供:昆山爱达人信息技术有限公司.
2018年安徽工程大学大学生高分子材料创新创业大赛
基础信贷法律知识 讲解人:岳杨.
第七章 文件 7.1 文件的基本概念 7.2 文件类型指针 7.3 文件的打开与关闭 7.4 文件的读/写 7.5 文件的随机读/写
105年教育部熱血老師翻轉學生「教育愛」座談會
104 四技二專甄選入學 簡章解析 輔導室 何乙娟.
Presentation transcript:

雷 霆 战 机 By—谷恩轩&余万全

游戏简介 游戏的总体分析 目录 链表和文件储存的使用 后期的游戏优化

游 戏 简 介

游 戏 开 始 界 面

游 戏 界 面

1 ,背景故事 以AD2090地球殖民地为背景,与从宇宙来了的未知侵略部队作战,地球方面的最先进机“雷霆”投入战斗。从这场战争中俘虏了侵略部队的一些士兵,从而得知他们曾经也征服过其它行星。并且发现了绿色的行星地球。他们将地球最先进的“雷霆”称为“恶梦”。他们将使用更高性能战斗机部队来作战。

1. 素材选取:首选“太空战机”的人物、地图图片,经过PS等软件的处理后,分别做成我们所需的人物动画、地图背景以及游戏的道路等等。 2 ,作品创意 1. 素材选取:首选“太空战机”的人物、地图图片,经过PS等软件的处理后,分别做成我们所需的人物动画、地图背景以及游戏的道路等等。 2. 游戏速度变化:游戏进行到一半时,游戏速度会进行一次加速,同时难度会增加,敌方战机的生命值也增大。 3. 代码原创:游戏的代码90%以上是原创,没有借鉴任何word文档以及网上资源。 4. 背景滚动:滚动图之间没有间隙,同时图片有一定的滚动速度,从而给玩家一身临其境的体验。

3,功能设计 1. 游戏运行,初试界面会出现‘空格开始’的提示,并且游戏的主角---我方战机会出现在界面。 2. 玩家单击space键开始游戏。 3. 游戏开始后,玩家每按一次空格键,我方战机会发射子弹攻击敌方战机。 4. 游戏中,玩家控制的战机如果碰到敌方战机,则会减少一定生命值,并且增加一定的分数。如果碰到炮弹则会减去一定生命值并且增加一定的分数。 5. 游戏进行到一半时,敌方战机移动速度和子弹飞行速度会变快,从而增加游戏难度。

4,功能实现 数据结构 int g_iGameState float g_fGameTime float g_fDifficulControl int g_iMaxScore int g_iCreatedSpriteCount float g_fWorldLeft float g_fWorldRight

float g_fWorldTop float g_fWorldBottom float g_fVelocityLeft float g_fVelocityRight float g_fVelocityTop float g_fVelocityBottom bool g_bControlCanFire float g_fBossCreateTime float g_fRotateCreateTime float g_fHorCreateTime float g_fVerCreateTime float g_fHealthCreateTime

5,关键问题 1,游戏中途难度如何加大 答:当此变量到达路总数一半时,出现背景滚动加快的效果,同时速度增加。游戏难度增加。 2,人物动画制作 答:我们的动画先用photoshop裁剪,然后根据标尺,精确定位。然后计算图片制作时所需要减去的宽度,制作一张包含各帧的图片,最后进行制作动画。

游戏的总体分析

1. 采用太空战机类型,画面没用过于炫酷的界面,给玩家一种舒适的游戏体验过程。 2. 采用五键式操作,操作简单。此作品由于时间短,工作量大,我们只做了游戏的一个简略版,并想在以后进行完善。 3. 道路随机产生,每次游戏随机生成地图,路精灵之间的距离每次都是随机产生。 4. 敌方战机生命值和移动速度改变,当boss出现时,子弹速度速度变慢。

链表和文件储存的使用

链表的使用 1,为了便于对战机和子弹的管理,我们使用结构体来将战机和子弹的变量存放在一起。战机和子弹的管理我们都放在链表中进行管理,并且将这两个文件添加到工程当中;接着我们用宏定义定义一些极限值;之后我们用枚举类型列出本游戏需要用的几种类型;最后完成了一个结构体

2,对游戏中的精灵进行链表管理 精灵是个体,我们将这些个体联系在一起便于管理; 我们可以根据链表由名字获得精灵,遍历精灵链表,添加精灵到链表, 从而可以根据名字删除链表,删除所有精灵; 具体用到的函数如下:

extern int GList_GetListSize(); // 根据名字获取Sprite extern SGameSprite *GList_GetSpriteByName( const char *szName ); // 根据索引获取Sprite,如果要遍历链表并删除其中的某个元素,请从后面往前面遍历(即索引初始化为链表大小然后递减),否则必然出错 extern SGameSprite *GList_GetSpriteByIndex( const int iIndex ); // 添加一个Sprite到链表里 extern SpriteStruct *GList_AddSprite( SGameSprite *pSprite ); // 根据名字删除Sprite. bDeleteImage : 是否删除该Sprite在地图上的图片显示

extern void. GList_DeleteSprite( const char extern void GList_DeleteSprite( const char *szName, bool bDeleteImage = true ); // 根据指针删除Sprite. bDeleteImage : 是否删除该Sprite在地图上的图片显示 extern void GList_DeleteSprite( SGameSprite *pSprite, bool bDeleteImage = true ); // 删除所有Sprite. bDeleteImage : 是否删除该Sprite在地图上的图片显示 extern void GList_DeleteAllSprite( bool bDeleteImage = true );

文件储存的使用 游戏最佳表现的记录:我们使用文件将最高分写入到文件当中,每局打完之后可以将现在的分数和文件中的分数比较,如果本局中的分数比最高分数要高,那么就更新最高分数,如果不如原来的最高分数高,就保持原来的最高分数。

因为最高分要与本局最后的分数进行比较,所以一下代码要加到GameEnd中,添加代码如下: if( g_iMaxScore < g_ControlSprite.iScore ) { g_iMaxScore = g_ControlSprite.iScore; // 写文件 FILE *pfp = fopen( "Score.dat", "wb" ); if( NULL != pfp ) fwrite( &g_iMaxScore, sizeof(g_iMaxScore), 1, pfp ); fclose( pfp ); } // [End Your Code] //更新最大积分 dSetTextValue( "MaxScoreText", g_iMaxScore );

这样编译之后,能够保存本局的最高分,如何去保存以前的最高分呢,我们在GameInit中添加代码 static int iInited = 0; if( !iInited ) { // 从文件里读取历史最高积分 // 本案例只记录单一积分值,有兴趣的话,可以做多个积分的排名然后 // 进行存储与读取 // 后面游戏结束那里,文件的存储将作为教学任务 FILE *pfp = fopen( "Score.dat", "rb" ); if( NULL != pfp ) fread( &g_iMaxScore, sizeof(g_iMaxScore), 1, pfp ); fclose( pfp ); //更新最大积分 dSetTextValue( "MaxScoreText", g_iMaxScore ); } 然后编译运行就可以看到游戏可以记录最高分数,并且每次开始游戏,都会显示以前游戏的最高分数。

后期的游戏优化

为了我们程序实现的简便,我们使用了枚举数据类型。 但是发现每次编译的时候都会提示warning

另外,后期测试游戏的时候,我们发现在开始游戏一段时间之后游戏会出现卡顿现象,后来请教老师后发现是因为游戏开始一段时间后,游戏界面外的精灵太多,导致游戏运行内存不够,最后我们通过判断敌方战机和子弹是否碰撞到了世界边界,碰到世界边界,就将其删除,最后游戏比原来就流畅了许多

感谢各位的倾听 Thank you for listening