我試圖將一些Cocos2d-iphone代碼轉換爲Cocos2d-x代碼,並可以使用一些幫助。在的Cocos2D-iPhone的代碼,它包含以下定義:將Cocos2d-iphone轉換爲Cocos2d-x
@interface CCPanZoomControllerScale : CCScaleTo {
CCPanZoomController *_controller;
CGPoint _point;
}+(id) actionWithDuration:(ccTime)duration scale:(float)s controller:(CCPanZoomController*)controller point:(CGPoint)pt;
@end
@implementation CCPanZoomControllerScale
+(id) actionWithDuration:(ccTime)duration
scale:(float)s
controller:(CCPanZoomController*)controller
point:(CGPoint)pt
{
return [[[self alloc] initWithDuration:duration scale:s controller:controller point:pt] autorelease];
}
在試圖轉換這(在大膽的聲明),以C++,我認爲它應該是一個靜態方法。另外,Cocos2d-x文檔建議返回bool,因爲C++中不存在id。但是在方法實現中,我不確定要返回什麼。我只是迴歸真實?
static bool actionWithDuration(ccTime duration, float scale, PanZoomController* controller, CCPoint point){ return true; }
我已經將幾個遊戲從cocos2d-iphone移植到cocos2d-x v2.x和v3.x.我閱讀了一些關於C++的書籍以加快速度(C++與Objc截然不同)。我發現挖掘槽cocos2d-x測試和框架源代碼來查看基本模式非常有幫助。 Cocos2d-x框架使用某些模式創建對象並管理必須學習的內存。我強烈推薦的書籍是Scott Meyers爲C++最佳實踐和Robert Nystrom編寫的遊戲編程模式的Effective C++ Digital Collection。 – 2015-04-23 15:52:29