2015-07-21 4 views
0

Я создал NSUInteger, который увеличивается на один пиксель, перемещенный в методе Перемещения. Однако приращение не является последовательным. Похоже, что перемещение пальца быстро увеличит число медленно, в то время как перемещение пальца медленно увеличит число быстрых.Приращение NSUInteger несовместимо при перемещении с помощью Touches Перемещено с разными скоростями рук

По существу я создаю эффект чернильницы, так что рисование на экране уменьшит количество чернил в соответствии с движением пальца, но с разными скоростями рисования это не всегда будет одинаковым.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch* touch = [touches anyObject]; 
    CGPoint positionInScene = [touch locationInNode:self]; 
    SKLabelNode *touchedNode = (SKLabelNode *)[self nodeAtPoint:positionInScene]; 

    pathToDraw = CGPathCreateMutable(); 
    CGPathMoveToPoint(pathToDraw, NULL, positionInScene.x, positionInScene.y); 
    lineNode = [[SKShapeNode alloc] init]; 
    lineNode.path = pathToDraw; 
    [_gameNode addChild:lineNode]; 
} 

- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event 
{ 
    UITouch* touch = [touches anyObject]; 
    CGPoint positionInScene = [touch locationInNode:self]; 
    CGPathAddLineToPoint(pathToDraw, NULL, positionInScene.x, positionInScene.y); 
    lineNode.path = pathToDraw; 
    lineNode.name = lineNodeCategoryName; 
    lineNode.physicsBody = [SKPhysicsBody bodyWithEdgeChainFromPath:pathToDraw]; 
    lineNode.physicsBody.categoryBitMask = lineNodeCategory; 
    lineNode.physicsBody.contactTestBitMask = bubble1Category|bubble2Category|bubble3Category|bubble4Category|bubble5Category; 
    lineNode.physicsBody.collisionBitMask = ballCategory; 
    lineNode.physicsBody.dynamic = YES; 
    lineNode.strokeColor = [SKColor blackColor]; 
    lineNode.glowWidth = 3.0; 

    testNumber ++; 
    testLabel.text = [NSString stringWithFormat:@"%lu",(unsigned long)testNumber]; 

    } 

ответ

0

touchesMoved:withEvent: вызывается, когда движение событие обнаружено. Вы не сможете полагаться на количество раз, когда этот метод вызывается, чтобы обнаружить, как далеко палец пользователя перемещен.

Вы должны скорее попытаться полагаться на расстояние, пройденное пальцем между двумя событиями, чтобы увеличить ваш тестовый номер.

+0

Можете ли вы дать мне краткий пример того, как я могу это сделать? – user3482617