2012-11-26 3 views
1

적인 Cocos2D 나를 위해 prety 새로운 그래서 내가이 상황에 무엇을해야하는지 모른다 : 나는 게임이 위험 같은 것을 먹으 렴 만들고 싶어코코스 2D 배경지도 제스처

. 이제 세계지도와 같은 배경 이미지를 만들었습니다. 그리고이지도에서 나는 스 와이프 제스처를 원한다. 그래서 나는 나의 ipad (지도가 prety가 크다 내가 arround를 강타하고 싶다)에지도 건너편으로 움직일 수있다.

내 문제는 내가 사용해야하는 개체가 무엇인지 모른다. 그리고 제스처를 가장 좋은 방법으로 구현할 수있는 방법 (직접 움직임을 계산해야합니까?).

감사합니다. 스테판.

답변

-1

나는 객체를 추가하려면이 찾고있는 생각 :

CCSprite *objectName = [CCSprite spriteWithFile:@"fileName.png"]; 
    [self addChild:objectName]; 

기본적으로, 나는 개체가 왼쪽 아래에있을 것으로 판단된다.

3

UIKit의 팬 제스처 인식기를 CCDirector의보기에 연결하고 CCLayer 클래스의 팬 제스처를 처리 할 수 ​​있습니다. 그런 식으로 모든 팬 움직임으로 배경을 움직이는 방법을 처리 할 수 ​​있습니다.

UIPanGestureRecognizer* pan = [[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGesture:)] autorelease]; 
CCDirector* director = [CCDirector sharedDirector]; 
[[director openGLView] addGestureRecognizer:pan]; 

처리기 방법은 다음과 같을 것입니다 (코드 번호가적인 Cocos2D 1.0.1와 유사한 2.0 버전으로 할 수있다) :

- (void)handlePanGesture:(UIGestureRecognizer*)gestureRecognizer { 
// If there is more than one pan gesture recognizer connected with this method, you should remember pan and check if gestureRecognizer is equal to pan 

switch (gestureRecognizer.state) { 
    case UIGestureRecognizerStateBegan: { 

     // Do something that needs to be done when pan gesture started 

     break; 
    } 
    case UIGestureRecognizerStateChanged: { 

     // Get pan gesture recognizer translation 
     CGPoint translation = [(UIPanGestureRecognizer*)gestureRecognizer translationInView:gestureRecognizer.view]; 

     // Invert Y since position and offset are calculated in gl coordinates 
     translation = ccp(translation.x, -translation.y); 

     // Here you should move your background, probably in oposite direction of translation vector, something like 
     background.position = ccp(background.position.x - translation.x, background.position.y - translation.y); 

     // Refresh pan gesture recognizer 
     [(UIPanGestureRecognizer*)gestureRecognizer setTranslation:CGPointZero inView:gestureRecognizer.view]; 

     break; 
    } 
    case UIGestureRecognizerStateEnded: { 

     // Do some work that should be done after panning is finished 

     break; 
    } 
    default: 
     break; 
    } 
} 
관련 문제