天行健 君子当自强而不息

     摘要: 本篇是创建游戏内核(2) 【接口与实现分离版】的续篇,关于该内核的细节说明请参考创建游戏内核(3),这个版本主要是按照功能划分模块的思想,并严格按照接口与实现相分离的原则来写的,没有用面向对象的思想来写,没有继承没有多态。大家可以对比两个版本,比较优劣。  阅读全文
posted @ 2007-10-02 19:24 lovedday 阅读(151) | 评论 (0)编辑 收藏
     摘要: 本篇是创建游戏内核(1) 【接口与实现分离版】的续篇,关于该内核的细节说明请参考创建游戏内核(2),这个版本主要是按照功能划分模块的思想,并严格按照接口与实现相分离的原则来写的,没有用面向对象的思想来写,没有继承没有多态。大家可以对比两个版本,比较优劣。  阅读全文
posted @ 2007-10-02 18:25 lovedday 阅读(219) | 评论 (0)编辑 收藏
     摘要: 程序员都是聪明人,没有谁愿意干重复劳动这样的傻事,因此,程序中出现重复代码是程序员的耻辱。就算不能消除重复代码,至少也可以对于相同的功能,用不同的代码来实现所以发明新轮子的程序员才会那么多。

面向对象作为一种横空出世的新技术,首先承诺的就是“更好的重用性”,而“重用性”这样一个闪闪发光的词,也的确能够吸引程序员的实现,那么多新的理论、新的技术、新的方法、新的框架、新的思想,用来说服别人接受的一个最大的理由,就是“更好的重用性”。然而,OO以及一直以来不断发展的 OO相关技术,对于重用性的提高,作出了多大的贡献呢?  阅读全文
posted @ 2007-10-01 14:00 lovedday 阅读(844) | 评论 (0)编辑 收藏
     摘要: 面向过程的世界是完整的,统一的,也是容易理解的——对于程序员来说——或者说他只需要一种理解能力。这个世界虽然值得怀念,却不值得再回去。因为,我们不再像当年的程序员那样,只开发那些简单的软件了。很多人崇拜那些早起的“大牛”,其实平心而论,我们现在面对的问题的复杂程度,在他们当年可以说几乎无法解决。需求的复杂程度也不是他们当年能够设想到的。  阅读全文
posted @ 2007-10-01 02:46 lovedday 阅读(1318) | 评论 (1)编辑 收藏
     摘要: 关于该内核的细节说明请参考创建游戏内核(1),这个版本主要是按功能划分模块的思想,并严格按照接口与实现相分离的原则来写的,没有用面向对象的思想来写,没有继承没有多态。大家可以对比两个版本,比较优劣。  阅读全文
posted @ 2007-09-30 23:56 lovedday 阅读(286) | 评论 (0)编辑 收藏
     摘要: 良好的设计应该只暴露接口给用户,所有的实现细节对用户来说应该是隐藏的,也就是说用户只要给接口传递相应的参数就行了,不需要管内部是如何实现的,比如我们使用fopen,fseek,CreateWindow等函数会发现很好用,而不需要管fopen,fseek,CreateWindow函数内部代码是如何实现的,数据结构是如何组织的,也就是说绝对不能暴露任何的细节给用户,包括数据组织在内。  阅读全文
posted @ 2007-09-30 14:15 lovedday 阅读(1459) | 评论 (2)编辑 收藏
     摘要: 前面介绍了如何初始化声音系统以及如何加载声音数据,很自然地,接下来就要讲述如何播放声音了,这也正是SOUND_CHANNEL类的用途所在。  阅读全文
posted @ 2007-09-29 22:03 lovedday 阅读(350) | 评论 (0)编辑 收藏
     摘要: SOUND对象控制DirectSound和DirectMusic对象,控制回放声音时的音量(全局音量控制),也触发音频流相关消息。  阅读全文
posted @ 2007-09-29 21:27 lovedday 阅读(373) | 评论 (0)编辑 收藏
     摘要: 继承关系是一种耦合度很高的关系,它与组合及一般化(genericity)一样,提供了OO中的一种基本方法,用以将不同的软件组件组合起来。一个类的实例同时也是那个类的所有的祖先的实例。为了保证面向对象设计的有效性,我们应该保存下这种关系的一致性。在子类中的每一次重新定义都应该与在其祖先类中的最初定义进行一致性检查。子类中应该保存下其祖先类的需求。如果存在着不能被保存的需求,就说明了系统的设计有错误,或者是在系统中此处使用继承是不恰当的。由于继承是面向对象设计的基础,所以才会要求有一致性检测。C++中对于非虚拟函数重载的实现, 意味着编译器将不会为其进行一致性检测。C++并没有提供面向对象设计的这方面的保证。  阅读全文
posted @ 2007-09-27 13:27 lovedday 阅读(492) | 评论 (0)编辑 收藏
     摘要: C++允许在参数类型不同的前提下重载函数。重载的函数与具有多态性的函数(即虚函数)不同处在于:调用正确的被重载函数实体是在编译期间就被决定了的;而对于具有多态性的函数来说,是通过运行期间的动态绑定来调用我们想调用的那个函数实体。多态性是通过重定义(或重写)这种方式达成的。请不要被重载 (overloading)和重写(overriding)所迷惑。重载是发生在两个或者是更多的函数具有相同的名字的情况下。区分它们的办法是通过检测它们的参数个数或者类型来实现的。重载与CLOS中的多重分发(multiple dispatching)不同,对于参数的多重分发是在运行期间多态完成的。  阅读全文
posted @ 2007-09-27 13:24 lovedday 阅读(378) | 评论 (0)编辑 收藏
仅列出标题
共136页: First 58 59 60 61 62 63 64 65 66 Last 

公告

导航

统计

常用链接

随笔分类(178)

3D游戏编程相关链接

搜索

最新评论