网站大量收购闲置独家精品文档,联系QQ:2885784924

课程设计中期报告模板.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计中期报告模板概要

新疆大学 信息科学与工程学院 《程序设计》课程设计中期报告 题目: 专 业 计算机科学与技术 学 生 姓 名 学 号 联 系 方 式 班 级 计算机15-班 组 员 姓 名 联 系 方 式 检 查 日 期 2016.7.29 新疆大学信息科学与工程学院 目 录 1. 课程设计内容概述 1 1.1 项目来源及开发目的和意义 1 1.2总体设计内容及方案 1 1.3 本人所承担任务(模块)说明 3 1.4 开发环境和开发工具 6 1.4.1 开发语言 6 1.4.2 开发工具 6 1.4.3 开发环境 7 1.5 项目原定进度安排 7 2. 中期完成情况说明 8 2.1 预定计划的执行情况 8 2.2 中期工作说明及成果汇报 8 2.3 存在的困难与问题 13 2.4 如期完成预定任务的可能性分析 13 2.5 后期工作安排 14 1. 课程设计内容概述 1.1 项目来源及开发目的和意义 (以下为范例) 1.2总体设计内容及方案 (以下为范例) 本项目主要任务Run-Time Type Identification运行时类型识别Simplified Wrapper and Interface Generator)轻松实现由C/C++接口到脚本的绑定。 编辑器(editor模块),编辑器是本游戏引擎的一个集成开发环境,包括脚本的编写、调试,游戏场景的制作、游戏资源文件的制作等。这是引擎中相对复杂的一个模块。 1.3 本人所承担任务(模块)说明 (以下为范例) 本人在整个项目中的具体任务是ReferenceCounted,记录当前的引用计数并实现了加减操作并负责对引用计数降为0是对象的释放。Pointer类就是我们的智能指针类,它是一个模板类,在构造、拷贝、赋值运算、销毁时确保正确地对它所控制的Object类的指针进行增减引用计数操作。 文件系统:使用了开源库PhysFS并进行了简单的接口包装。 editor模块: 使用开源的界面库wxWidgets2.8.9进行界面的开发,选择的理由: 开源、跨平台,符合我们引擎的设计初衷。 它不仅仅是一套界面库,还提供了一些其他的平台无关的类库。 它使用操作系统的原生控件。 众多的contrib库和辅助开发程序,并且有Code::Blocks等IDE也是使用它来开发的。 编辑器的总体设计: 图-1 编辑器组成示意图 编辑器主要功能使用动态库的方式实现,并对外提供一套API接口,主程序通过调用此动态库来完成相应的功能,并且主程序提供编辑器的主要的UI框架与用户交互。为什么不将两者合在一起实现呢?这是因为我们的编辑器要支持扩展,支持扩展的代价就是要对外开放接口,而开发接口的最好的方法就是动态库。这样第三方扩展插件便可以轻松地使用编辑器的接口来完成它的功能,但它也必须遵从一定的规范才能被编辑器的主程序识别并顺利地加载,这个规范就是:插件一定要实现“插件接口”,编辑器内留出了多种支持的插件类型的接口,如:调试器插件用于对脚本语言的调试、向导插件用于新建某一类型的文件、文件类型处理插件用于对特定类型的文件进行编辑(材质编辑、粒子编辑、UI编辑都属于这种类型)。 编辑过程中与用户的交互是无法避免的,如何把在编辑过程中用户触发的事件在编辑器和插件之间以及插件和插件之间传递需要由一个系统来处理——事件系统: 图-2 编辑器事件系统示意图 用户进行编辑操作时会触发编辑器内部的事件,事件进入编辑器的事件处理系统,处理系统根据其类型查找相应的EventSinks,然后依次调用注册的回调函数将消息分派下去处理。这样一些插件就可以通过注册某些关心的事件的回调函数来响应用户操作。 要实现相同的功能还有另一种方式:为每一个类型的事件写一个虚函数,由插件继承并实现此接口,利用C++的多态特性来实现。相比较而言,我们的处理方式更加灵活,并且性能更好(因为多层次的继承C++的虚函数表会造成性能问题)。 调试器的实现:调试有2种实现方式:单进程使用线程调试和多进程使用进程间通信的方式。 方式一:容易编码,但需要保证调试和运行能够“友好”地相处,我们的编辑器不满足这种条件,编辑器和游戏是两个不同的进程,并且编辑器本身也使用游戏的一些库,着非常容易造成资源的混乱。 方式二:必须进行进程间的通信,进程间的通信又主要有三种方式:管道、共享内存、套接字

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档