2009-05-20 3 views
0

코코스 2d 질문 ??cocos2d에서 터치 하시겠습니까?

터치 유형을 어떻게 변경합니까? 아래를보십시오

image = [MenuItemImage itemFromNormalImage:@"image1.png" selectedImage:@"image2.png" target:self selector:@selector(step1:)]; 
    Menu *menu = [Menu menuWithItems:image, nil]; 
    image.position = cpv(-135, -185); 
    [self addChild: menu z:2] 

step1은 코드에서 나중에 뭔가를 수행하도록 정의 된 공백입니다. 내 문제는 step1가 작동하지 않는다는 것이지, 내 문제는 step1이 사용자가 내부 버튼에 닿을 때가된다는 것입니다. 사용자가 버튼을 터치하면 작동합니다. 도와 주셔서 감사합니다!

답변

1

MenuItem 's는 현재 'touch started'에 응답 할 수 없으며 'touch end'에만 응답하도록 하드 코딩되어 있습니다.

105 번째 줄부터 Menu.m에서 ccTouchesBegan 선언을 볼 수 있습니다. 이 안된

@interface MenuDown: Menu 
{ 
} 
@end 

@implementation MenuDown 
-(BOOL)ccTouchesBegan:(UITouch *)touches withEvent:(UIEvent *)event { 
    [self ccTouchesBegan:touches withEvent: event]; 
    if(item) { [item unselected]; [item activate]; } 
} 
@end 

하지만, 기본적으로 ... 난 그냥 ccTouchesEnded에 Menu.m에서 일부 코드를 잡고 : 당신은 메뉴의 현재 동작을 수정하려면

, 그렇게처럼 서브 클래스 수 , 새로운 MenuDown 클래스에 대한 ccTouchesBegan의 오버라이드 버전으로 복사했습니다. 이가 아닌

MenuDown *menu = [MenuDown menuWithItems: image, nil]; 

이 당신에게적인 Cocos2D의 MenuItem의에서 '터치 반응 시작했다'응답을 제공 -should- ... 그러나

:과 같이 다음 메뉴를 정의 할

정말로 제안되었습니다 ... 나는 '버튼'이 터치에 반응하는 것을 원하는 이유를 볼 수 없기 때문에 '최종 액션'에 반대합니다 ... 작성된대로 Menu는 현재 사용자가 , 다음으로 슬라이드하여 메뉴 선택 작업을 취소하십시오.

Menu/MenuItem은 터치 반응 형 오브젝트 (즉, 실제 게임 오브젝트)로 사용되도록 의도 된 것이 아닙니다.

관련 문제