2015-01-30 9 views
0

터치를 사용하여 이동하려는 평면이있는 게임을 만들기 위해 SpriteKit을 사용하고 있습니다. 아이디어는 사용자가 터치 한 위치로 비행기를 재배치하는 것입니다.SKAction moveTo : 지속 시간 : 터치의 CGPoint 값에 올바르게 응답하지 않습니다.

UITouch *touch = [touches anyObject]; 
CGPoint point = [touch locationInView:self.view]; 

CGPoint moveToLocation = point; 

SKAction *planeMove = [SKAction moveTo:moveToLocation duration:0.5]; 

[_plane runAction:planeMove]; // _plane represents the plane sprite. 


NSLog(@"Touch Point: %@ ",NSStringFromCGPoint(point)); 
NSLog(@"Plane Location: %@", NSStringFromCGPoint(_plane.position)); 

위의 코드는 터치 포인트 및 평면 위치에 대해 서로 다른 값을 사용하면 바람직하지 않은 결과가 발생합니다. 따라서, 접촉 후의 평면은 원하는 위치로부터 멀리 떨어져있다. 예를 들어, 값이 나는 NSLog 얻을 :

Touch Point: {391, 743} 
Location: {393, 672} 

답변

1

CGPoint point = [touch locationInNode:self]; 
에 두 번째 줄을 변경