2d-x是用c++写的。如果在2d-x中想实现objective-c那样的委托(protocol)和代理(Delegate)的话,可以用一个基类来实现。
比如定义一个购买的protocol:
class InAppPurchaseProtocol
{
public:
virtual ~ InAppPurchaseProtocol(){};
// 购买成功
virtual void onPurchaseComplete(){};
// 购买失败
virtual void onPurchaseCancle(){};
};
InAppPurchaseProtocol中有两个虚函数实现为空,这两个虚函数可以在它的子类里重写。
有一个
ShopLayer类,是用于购买的,它继承了InAppPurchaseProtocol类,并且重写了两个虚函数。
class ShopLayer :public CCLayer,public InAppPurchaseProtocol{
virtual void onPurchaseComplete();
virtual void onPurchaseCancle();
};