2011-12-19 4 views
2

일부 Cocos2d-iphone 코드를 Cocos2d-x 코드로 변환하려고하는데 약간의 도움이 될 수 있습니다. 적인 Cocos2D - 아이폰 코드, 그것은 다음과 같은 정의가 포함되어 C++이 (굵게 문을) 전환하는 것을 시도에서Cocos2d-x를 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]; 
} 

을, 나는 그것이 정적 방법이 될 전망이다. 또한 Cocos2d-x 문서에서는 id가 C++에 없기 때문에 bool을 반환하는 것이 좋습니다. 그러나 메서드 구현에서 무엇을 반환할지 잘 모르겠습니다. 나는 진실로 되돌아 간다.

목적-C에서

static bool actionWithDuration(ccTime duration, float scale, PanZoomController* controller, CCPoint point){ return true; }

답변

2

, 당신은 당신이 현재 개체를 반환하려는 경우, 당신은 객체를 생성해야합니다 (클래스 메소드의 수단) 나누었다 C++에서 정적 방법에서 자기 객체를 반환 할 수 있습니다 현재 클래스의 경우 해당 객체 만 반환해야합니다. 우리는 "this"를 직접 사용할 수 없습니다. 이 메소드를 static가 아닌 것으로 설정해, 현재의 클래스 객체 "this"를 리턴합니다.

다음과 같이 메소드 선언을 지정할 수 있습니다.

CCAction* className::actionWithDuration(ccTime duration, float scale, PanZoomController *controller, CCPoint point) 
{ 
    return (your class object); 
} 

당신은,이 메소드를 호출 특정 클래스의 객체를 생성하고, 예를 들어 개체에이 메소드를 호출 할 때마다

,

PanZoomController *controller = new PanZoomController(); 
CCPanZoomControllerScale *scaleController = new CCPanZoomControllerScale(); 
sprite -> runAction(scaleController -> actionWithDuration(duration, scale, controller, pt)); 

나는이 당신을 위해 도움이 될 수 있다고 생각합니다.

+0

나는 cocos2d-iphone에서 cocos2d-x v2.x 및 v3.x로 여러 게임을 포팅했습니다. 나는 C++에 관한 몇 권의 책을 읽고 속도를 높이기 위해 (C++은 Objc과 크게 다르다). 나는 기본적인 패턴을보기 위해 cocos2d-x 테스트와 프레임 워크 소스 코드를 파헤 치는 것이 매우 도움이된다는 것을 발견했다. Cocos2d-x 프레임 워크는 특정 패턴을 사용하여 객체를 만들고 배워야하는 메모리를 관리합니다. Books C++ 베스트 프랙티스 및 Robert Nystrom의 게임 프로그래밍 패턴에 대한 Scott Meyers의 Effective C++ Digital Collection을 강력히 추천합니다. –

관련 문제