09 2014 档案
摘要:libgdx中Math封装了Polygon这个类,它是由多个定点进行描述实现的,在进行物体间的碰撞时,物体轮廓有时候是不规则的,这时候可以用一个多边形勾勒出其大概的轮廓,对其进行模拟。Polygon内部自带是否包含点contains这个函数,通过这个函数我们可以判断两个多变行是否碰撞,即检测两个多边...
阅读全文
摘要:适配器模式可以使接口不相同的几个对象通过适配来统一接口。Target与Adaptee各自拥有自己的方法,但接口不同,可以通过Adapter进行统一。 1 #ifndef Adapter_H_H 2 #define Adapter_H_H 3 4 #include 5 using namespac...
阅读全文
摘要:访问者模式中,有一个数据体,添加了各个访问对象。这些访问对象在不同的状态时,会有不同的反应。这种模式中,对象与状态相分离,互不干扰。Visitor.h内容 1 #ifndef Visitor_H_H 2 #define Visitor_H_H 3 4 5 #include 6 #i...
阅读全文
摘要:中介者模式中,个体与个体之间不需要发生直接关联,而是只需要与中介者进行交互,并由中介完成一系列任务。Mediator.h内容 1 #ifndef Mediator_H_H 2 #define Mediator_H_H 3 4 #include 5 using namespace std; 6 ...
阅读全文
摘要:职责链模式中,对于某项事件,设置一个直接的处理者即可。如果直接处理者不能处理,则交给其上一级处理者,一直到该事件处理完毕为止。职责链模式好处在于,只需要设置事件的相关级别、属性,并只需要交给一个相关的处理者即可。Reschain.h内容 1 #ifndef Reschain_H_H 2 #defin...
阅读全文
摘要:命令模式中,命令抽象成一个借口,包含一个命令的执行者,能够派生出各种不同的命令。并有一个命令的管理者,能够添加各种命令,添加完后,在必要的时候通知执行者执行这些命令。Command.h内容 1 #ifndef Command_H_H 2 #define Command_H_H 3 4 #inclu...
阅读全文
摘要:组合模式中,整体和部分可以同等看待,基类设定一个节点接口,可以派生出叶子节点和非叶子节点。叶子节点不能添加节点,非叶子节点可以添加,组成一个典型的树形结构。组合模式在游戏引擎的渲染树中应用很广泛。Composite.h内容 1 #ifndef Composite_H_H 2 #define Comp...
阅读全文
摘要:建造者模式定义一个具体的物体,是各种属性的集合。要创建该物体时,可以构建一个构造器,该构造器包含特定的构造方式,但是只提供一个接口,具体构造细节放在派生类中实现。Builder.h内容 1 #ifndef Builder_H_H 2 #define Builder_H_H 3 4 #inc...
阅读全文
摘要:模板模式特点:提取相同的特性放在基类中,而将不同的特性作为一个借口抽象出来,放到派生类中进行具体实现。Template.h内容 1 #ifndef Template_H_H 2 #define Template_H_H 3 4 #include 5 #include 6 using names...
阅读全文
摘要:原型模式主要指通过基类的指针能够动态创建出当前实际类型的实例,可以快速复制出当前的一个副本。Prototype.h内容 1 #ifndef Prototype_H_H 2 #define Prototype_H_H 3 4 #include 5 using namespace std; 6 7...
阅读全文
摘要:观察这模式中,有一个观察者监听一个事件,当事件发生时,向所有被通知者发送相应的消息和命令。例如,秘书作为观察者,监听老板的动作。当老板回来时,向看电影、睡觉的员工发送消息,让他们停止并开始工作。Observation.h内容 1 #ifndef Observation_H_H 2 #define O...
阅读全文
摘要:当物体有几种不同的属性时,这时类的继承就会变的多样。例如,一款手机按类型可分为功能机和智能机,按颜色可分为黑色、白色、红色等,按品牌可分为苹果、三星、小米等。当属性越多,则需要创建的类就更多,使用桥接模式能够大大降低问题的复杂性,并且能够极大程度降低耦合。示例代码:Bridge.h内容 1 #ifn...
阅读全文
摘要:单例模式是一个比较简单的设计模式,只产生一个具体的对象,一般用于全局变量,保证整个系统所使用的变量是唯一的。单例模式中,一般将构造函数和析构函数都设置为私有的,获取和释放时采用静态函数实现。具体实例:SingleInstance.h内容 1 #ifndef SingleInstance_H_H 2 ...
阅读全文
摘要:工厂模式是针对不同的类型创建不同的对象,当所需要的对象没有变,而只是对它们进行的操作和算法不同时,可使用策略模式。策略模式创建不同的算法类,并返回一个基类算法对象的指针,并对它进行相关的计算或操作。实例代码Strategy.h内容 1 #ifndef Strategy_H_H 2 #define S...
阅读全文
摘要:抽象工厂通过一个工厂产生各种不同的实际对象,并返回基类的指针,通过基类的指针来统一对对象进行操作,增强了其灵活性,降低了耦合,便于后续更新和维护。实例代码:AbstractFactory.h内容 1 #ifndef AbstractFactory_H_H 2 #define AbstractFact...
阅读全文
摘要:cocos2d-x中封装CCMenuItem等相关按钮,但是有些时候需要自己封装按钮,这样能够更加灵活的实现对应功能。自定义Button,需要重写OnEnter()和onExit()函数,并在对应函数中添加注册和取消注册。BaseButton.h内容 1 #ifndef BaseButton_H_H...
阅读全文
摘要:http://zengrong.net/post/1964.htm
阅读全文
摘要:利用CCTransition能够创建出一系列的场景过渡动画,能够使场景切换时更加绚丽丰富。CCTransition派生出很多过渡动画,传入的参数一般包括过渡时间和创建的场景。MyScene.h内容 1 #ifndef MyScene_H_H 2 #define MyScene_H_H 3 4 #i...
阅读全文
摘要:重写CCNode的draw函数能够绘制出各种基本图形,如点、直线、多边形、园、贝塞尔曲线等,同时还可以设置绘制的颜色和宽度。MyScene的draw函数 1 void MyScene::draw() 2 { 3 ccDrawColor4B(255, 0, 0, 255); 4 glL...
阅读全文
摘要:游戏不同于影音,强交互性是其一大特色,在游戏中主要体现为接受用户的输入并响应。智能手机触摸是其重要的输入方式。在cocos2d-x中,触摸分为单点触摸和多点触摸。单点触摸:主要继承CCTargetedTouchDelegate 实现。多点触摸:主要继承CCStandardTouchDelegate实...
阅读全文
摘要:CCAction能够使CCNode运动起来,能够呈现出多种多样的动作。这些动作能够改变其运动方向、形状、大小、旋转等。同时,还可利用CCCallFunc、CCCallFuncN、CCCallFuncO、CCCallFuncND等函数实现回调。MyScene.h代码 1 #ifndef MyScene...
阅读全文
摘要:这篇算是cocos2d-x入门篇,显示一张图片即可。观察工程中HelloWorld的结构,包含AppDelegate和HelloWorldScene两个类文件,AppDelegate中包含基本的处理,并且创建最初要显示的Scene并运行之。而HelloWorldScene中则做了相关的初始化工作,在...
阅读全文
摘要:自己刚开始接触cocos2d-x时,版本已更新至3.2版本。但3.0以上版本需要C++11标准支持,这样的话需要VS版本在2012以上,自己当时不太想更换开发环境。另一方面,3.0版本改动较大,而很多资料的版本一般都是建立在2.0-2.2的版本,综合起来,自己还是选择了cocos2d-x 2.2.4...
阅读全文
摘要:对Touch事件的获取与处理可以使用CCLayer, CCMenuItem等,但是如果我们需要一个虚拟按键或者需要对特定精灵进行拖动等等,我们就需要自定义Touch类。自定义Touch事件处理类重要的步骤是:1. 继承CCTargetedTouchDelegate2. 添加addTargetedDe...
阅读全文
摘要:程序运行后每达到一帧的时间间隔就会执行一次mainLoopvoid CCDisplayLinkDirector::mainLoop(void){//判断是否需要释放CCDirector,通常游戏结束才会执行这个步骤 if (m_bPurgeDirecotorInNextLoop) { ...
阅读全文
摘要:首先CCAction是所有动作的基类,如下图继承关系:那么来看看CCAction的定义:class CC_DLL CCAction : public CCObject {public: CCAction(void); virtual ~CCAction(void); const c...
阅读全文
摘要:为了实现触摸事件,CCLayer已经封装好了简单的接口(继承了CCTouchDelegate类)来实现触摸事件的响应。首先,触摸事件有两种:标准触摸代理和目标触摸代理。那么我们先看看如何开启这两种触摸代理。1.标准触摸在层初始化时调用setTouchEnable(true)方法即可实现标准触摸,实现...
阅读全文
摘要:cocos2d的所有类都以CC开头,那么实际上这个类的名字就是Node,类如其名,这个类的实例就是一个节点。Cocos2d的类是树状继承的,而在内存中,各个实例之间也是以“树”这种数据结构相关联的。,可见树在cocos2d中的重要性,难怪某位伟人说“要致富,少生孩子多种树”……(雾)所以如果有童鞋对...
阅读全文
摘要:用helloworld讲解cocos2d-x的编程思路与要点本文以cocos2d-x的helloworld为例,讲解cocos2d-x引擎的特点和要点,2.2为了展示新功能,把包括屏幕自适应在内的新特性相关代码加入了helloworld工程代码里,但是也增加新人的上手难度,我会避过不谈,只说关键的几...
阅读全文