该模式不是23种设计模式中的一种,是游戏开发中经常采用的一种设计模式,在此,顺便拿来讨论。
模式定义
该模式描述了“控制器”和“被控对象”之间的关系,被控对象同一时刻可能被多个控制器控制。
实例
在游戏中,精灵的移动可以表现为多种方式(平移,贝塞尔曲线等等)。为了方便控制精灵,我们可以设计多种控制器用于控制精灵。
被控对象
首先定义一个被控对象基类,并提供接口以便控制器调用(用于控制)。
#include "cocos2d.h"
USING_NS_CC;
class ControllerListener
{
public:
/* 控制器希望控制 被控对象 的位置 */
virtual void setTagPosition(float x, float y) = 0;
virtual Point getTagPosition() = 0;
};
玩家对象 继承精灵和被控类,以便玩家具备两种特性(精灵特性 和 能够被控制)
class Player: public Sprite,