정말 죄송합니다. cocos2d 터치 감지에 대한 몇 가지 질문이있었습니다 (this 대답을 포함).하지만 그 중 일부는 작동하지 않습니다. 나는 내 자신의 질문을 묻는 대신에 내가 연결 한 대답에 대해 논평했지만, 나는 의견을 남길 수있는 충분한 담당자가 없다.화면의 아무 곳이나 터치 감지 * cocos2d에서?
사용자가 화면의 아무 곳이나 두 드리 자마자 애니메이션을 멈추고 싶습니다. 내가 레이어 파일과 cocosNode 파일에 모두 BOOL
및 void
, ccTouchesBegan
및 touchesBegan
을 시도했습니다
- (BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"Touches Began");
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView: [touch view]];
location = [[Director sharedDirector] convertCoordinate: location];
CGRect mySurface = (CGRectMake(100, 100, 320, 480));
if(CGRectContainsPoint(mySurface, location)) {
NSLog(@"Event Handled");
return kEventHandled;
[[Director sharedDirector] stopAnimation];
}
return kEventIgnored;
NSLog(@"Event Ignored");
}
, 그리고 많은 다른 것들 :
다음은 내 지금까지 코드입니다. 아무 반응이 없습니다. 로그에 아무 것도 표시되지 않으며 애니메이션은 즐거운 작은 방법으로 계속됩니다. 내가 도대체 뭘 잘못하고있는 겁니까?
나 ': 당신이 뭔가를 할 수 있도록
또 다른 유용한 것은 (당신이 접촉을보고있는 번), 당신은 쉽게 표시하고 또는 @interface 노드 : CocosNode ? –
Evelyn
CGPoint
의 값을 디버깅 할 수 있습니다NSStringFromCGPoint
기능입니다 나는 무엇을 의미하는지 안개가 난다. @interface GameLayer를해야하나요? 레이어당신의 코드가 정확하다고 생각합니다. stopAnimation 라인을 리턴 라인 위로 이동시키고 마지막 NSLog와 동일하게 처리해야합니다. 그렇지 않으면 해당 코드에 도달하지 않습니다. 그래서 먼저 수정하십시오. –
나는 그것을했고, 여전히 아무 것도하지 않았다 ... – Evelyn