惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - Cool_IT_Cool_Man

如何向MyEclipse项目的文件夹中添加JSP页面? JavaScript调试工具 MyEclipse中如何安装插件(以Subclipse为例)[转] s:textarea中的文本内容在什么时候才能被赋值给Action中的属性? 由 s:hidden 引起的文本框内容不能传到 struts的Action中 在Eclipse工作空间中移除再添加项目的方法 在Eclipse工作空间中创建新项目的方法 Visual Studio 使用常见问题 如何阅读C++源代码 《Ogre 3D 游戏开发框架指南》配套光盘的一个小瑕疵 类型安全·异常安全·线程安全 如何使用Eclipse从Subversion源码服务器下载源码? UltraEdit不能对Matlab的M文件进行语法高亮显示问题的解决 JessDE 在 Eclipse中不能正确安装的问题 UltraEdit的语法高亮文件网址 如何配置SWRLJess Tab? 编程经验小结 如何在Protege3.4中安装graphviz以便在protege中使用OwlvizTab? 语义网的学习资源大汇集(转载)
Orz游戏开发框架阅读笔记(一)
Cool_IT_Cool_Man · 2011-08-20 · via 博客园 - Cool_IT_Cool_Man

      Orz是邸锐(免费打工仔)开发的游戏框架,我阅读的版本是书籍《Ogre 3D游戏开发框架指南》的配套光盘中的OrzSource。我是和书籍一起对照来读的。

    在读Orz源代码时,最好首先用CMake将源代码生成Visual C++ (2005或以上)的工程文件。这样可以在VC的集成环境中来读源代码,效率会提高很多。

Orz的源代码主要包括8个源代码文件夹,它们是Controller_BaseController_Win32Framework_BaseModel_BaseToolkit_BaseView_FmodView_OGRE3DView_OIS。其中,Controller_BaseController_Win32只包含mainWinMain等程序入口文件,对整个框架的功能没有影响;Model_Base是一个插件,它是动态链接库的形式,Model_Base建立了一个简单的游戏逻辑,这个游戏逻辑通过插件的方式可以加载到程序中来(当加载其它插件时,要以Model_Base这个插件为基础,请参考书籍《Ogre3D游戏开发框架指南》的配套光盘第3周的程序)View_FmodView_OGRE3DView_OIS这三个文件夹是orz框架对音频、图形引擎和输入输出函数的封装或适配,提供其他模块所需要的相关功能;Orz源代码中最核心的文件夹是Framework_BaseToolkit_Base

除了上面8个源代码文件夹外,还有其它一些文件夹。bin文件夹可以放编译后的dll文件,cmake文件夹存放CMake编译相关的文件,media文件夹可以放与游戏有关的一些媒质文件。值得注意的是orz文件夹,orz文件夹包含5个子文件夹,子文件夹中都是.h文件。如果使用orz框架开发游戏程序,应该将orz文件夹中所有的头文件都包含进去。从orz文件夹的头文件中也可看出orz框架向游戏程序提供的主要功能。

 下面来看Orz源码最核心的两个文件夹ToolKit_BaseFramework_Base。这两个文件夹中供Orz以外程序调用的头文件都在前面所述的Orz子文件夹中,在两个文件夹下只有include子文件夹和src子文件夹,所有实现文件都在src子文件夹中。

         我们先来研究Toolkit_Base文件夹,顾名思义,这个文件夹存放的是Orz框架使用的程序工具。在src子文件夹下,有5文件夹,分别是DynLibManagerEventSystemIDManagerLogManagerTimerManager,相应地,这几个文件夹下的实现文件主要完成插件管理、消息系统、ID管理器、日志管理器和计时器管理器等功能。(因为.h文件分布在几个不同文件夹中,不太好寻找,我们只需阅读.cpp文件即可,在阅读.cpp文件的过程中,根据需要再去阅读相关的.h文件)