移动Sprite移动触摸

时间:2014-05-05 14:56:29

标签: ios sprite-kit touchesmoved

我正在使用touches moving方法移动精灵。当前精灵跳转到触摸屏幕的点,但我希望精灵只在直接触摸时移动。

我的代码:

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

    for (UITouch *touch in touches) {

        CGPoint location = [touch locationInNode:self];
        CGPoint newPosition = CGPointMake(location.x, self.size.height/2);

        self.sprite.position = newPosition;
     }
 }

1 个答案:

答案 0 :(得分:2)

检查触摸位置是否在精灵内部,如下所示:

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    CGPoint positionInScene = [touch locationInNode:self];
    if(CGRectContainsPoint(self.sprite.boundingBox,positionInScene)) {

        CGPoint newPosition = CGPointMake(positionInScene.x, self.size.height/2);

        self.sprite.position = newPosition;
    }
}