2013-11-27 1 views
2

그래서 간단한 퍼즐 게임이라고 생각하는 것을 구축하면서 SpriteKit을 배우려고합니다. 나는 다른 색상의 SKSpriteNodes의 5x5 그리드 있습니다. 내가 원하는 것은 하나를 만질 수 있고, 손가락을 수평 또는 수직으로 움직이고, 손가락을 "선택"하는 것처럼 모든 노드를 감지 할 수 있습니다. ins SpriteKit, 이동하는 동안 내 손가락이 접촉하는 모든 스프라이트를 선택하십시오.

나는 이런 식으로 뭔가를하려고 노력하지만, 응용 프로그램 충돌 :

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ 

    UITouch *touch = [touches anyObject]; 
    CGPoint location = [touch locationInNode:self]; 
    SKSpriteNode *node = [self nodeAtPoint:location]; 

    NSLog(@"Dragged over: %@", node); 
} 

내가 누락/"touchLeave"A "하는 TouchEnter"좀 이벤트 같은 것을 거기를? 미안, 나는 내가 모르는 것을 알지도 못한다.

-(void)didMoveToView:(SKView*)view { 
    UIPanGestureRecognizer *recognizer = [[UIPangestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGesture:)]; 
    recognizer.delegate = self; 
    [self.view addGestureRecognizer:recognizer]; 
} 
-(void)hadlePangesture:(UIPanGestureRecognizer*)recognizer { 
    CGPoint location = [recognizer locationInView:self.view]; 
    SKSpriteNode *node = [self nodeAtPoint:[self convertPointFromView:location]]; 
    if (node) { 
     NSLog(@"Dragged over: %@", node); 
    } 
} 

답변

3

UIPanGestureRecognizer

은 당신의 친구입니다 SKNode가되어야합니다.
+1

해야 하는가가 아니라 "SKSpriteNode * 노드 = [위치] 자기 nodeAtPoint : : : [자기 convertPointFromView]" – PeterK

+0

이 기능은 터치 한 번만 있으면 잘 작동하지만 두 번째 터치가 화면의 다른 곳을 누른 상태에서는 작동하지 않습니다. – avance

관련 문제