2012-10-20 1 views
0
-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
UITouch *touch = [touches anyObject]; 
    CGPoint point1 = [touch previousLocationInView:[touch view]]; 
    CGPoint point2 = [touch locationInView:[touch view]]; 

    point1 = [[CCDirector sharedDirector]convertToGL:point1]; 
    point2 = [[CCDirector sharedDirector]convertToGL:point2]; 


    pre = point1; 
    curr = point2; 
    CCLOG(@"the pre location is %@",NSStringFromCGPoint(pre)); 
    CCLOG(@"the curr location is %@",NSStringFromCGPoint(curr)); 


} 

위 코드에 어떤 오류가 있습니까? pre와 curr 변수는 같은 결과를 출력합니까?CCTouchesBegan 문제

답변

1

터치가 시작되면 분명히 터치가 시작된 이후에 이전 터치가 없습니다. 따라서 이전 위치와 위치는 동일합니다.

이 코드를 ccTouchesMoved에서 실행하면 예상대로 작동합니다.

+0

내 앱에는 다음과 같은 req가 있습니다. 한 순간에 스프라이트를 선택한 다음 다음 터치 포인트로 이동하고 싶습니다. – user1761217

0

ccTouchesEnded 메소드에서 현재 위치를 인쇄하기 만하면됩니다. 그것은 두 점 사이의 차이를 줄 것입니다.

-(void) ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 

따라서 previousLoaction을 ccTouchesBegan 메소드로 가져와야합니다.