在SpriteKit中,“select”我的手指在移动时触摸的所有精灵

所以我正在学习SpriteKit,同时build立我认为是一个简单的益智游戏。 我有一个不同颜色的SKSpriteNodes 5×5网格。 我想要的是能够触摸一个,并且水平或垂直移动我的手指,并检测我的手指正在触摸的所有节点,就像我正在“select”它们一样。

我试图做这样的事情,但它崩溃的应用程序:

-(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); } 

有没有像我失踪的“touchEnter”/“touchLeave”类事件? 对不起,我什至不知道我不知道。

UIPanGestureRecognizer是你的朋友:

  -(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); } }