안녕 얘들 아, 그 점에 관해 많은 질문을 많이 준비했지만, 아직 정확한 답변을 얻지 못했습니다. cocos2D의 접촉 문제
그래서 ..이 문제가
..이것은적인 Cocos2D 내 첫 번째 프로젝트, 그것에 대해 정말 죄송합니다.
나는 한 장면이 내가 이름 그리드 하나 개의 레이어가이 그리드의 내부에, 많은 많은 블록 (너무 레이어)이 게임 플레이를 그 내부라고합니다.
블록을 터치 할 때 확인해야합니다. 인터페이스 작성기를 사용하기 전에이를 수행합니다. 따라서 touchesBegin을 호출 할 때 정확한 터치를 한 번에 볼 수 있습니다. 하지만 cocos2D에서, 나는 당신이 객체의 위치를 확인해야한다는 것을 알았고, 그렇다면 바로 테스트를 치지 않았습니까?!
그래서 내 touchesBegin은 다음과 같이이다 :
- (void)ccTouchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView: [touch view]];
//location = [[Director sharedDirector] convertCoordinate: location];
for(int i = 0; i < [arrAllBlocks count]; i++)
{
for (int j = 0; j < [[arrAllBlocks objectAtIndex:i] count]; j++)
{
Block *tempBlock = [[arrAllBlocks objectAtIndex:i] objectAtIndex:j];
CGRect mySurface = (CGRectMake(tempBlock.position.x, tempBlock.position.y, tempBlock.contentSize.width,tempBlock.contentSize.height));
if(CGRectContainsPoint(mySurface, location))
{
NSLog(@"Hit Positions %fl:%fl",location.x,location.y);
NSLog(@"Object Positions %fl:%fl",tempBlock.position.x,tempBlock.position.y);
NSLog(@"Object Color:%@ hited", tempBlock.strName);
}
}
}
}
첫 번째 문제는 :이 상하 반전 보인다! 첫 번째 줄에서이 블록 중 하나를 클릭하면됩니다! 나는 마지막 줄에서 블록을 얻는다 !! 나는 정말로 그것을 얻지 않는다! 그리고 타격은 나에게 완벽하지 않습니다! 그리고 내가 convertCoordinate 최악의 경우!
누군가 나를 도울 수 있습니까?! 그리고 나쁜 영어에 대해 유감스럽게 생각합니다./
OpenGL은 나머지 iPhone의 작동 방식에 따라 상하 방향의 좌표를 사용합니다. 나는 Cocos2D가 어떻게 그 문제를 처리하는지 모르지만 네, 그것은 성가신 일입니다. –