2013-09-22 3 views
0

매초마다 탭 수를 계산할 수있게하려고합니다. 이게 touchesBegan:...과 관련이 있다고 가정 하긴하지만 버튼에는 작동하지 않습니까? 어쨌든 초당 탭 수는 어떻게 측정합니까? 매초마다 다시 설정하는 카운터를 사용하여 수동으로 할 수 있다고 생각하지만 더 좋은 방법이 있는지 궁금해하고있었습니다. 값을 배열에 추가합니까? 그렇다면 0을 제외한 평균을 계산할 수 있습니까?초당 탭 수를 계산하는 방법

현재 코드. 당신의 ViewController에서

-(void) timer:(NSTimer *)averageTimer { 
    if(tapCountInLastSecond != 0) { 
     secondsElapsed++; 
     averageTapsPerSecond += tapCountInLastSecond/secondsElapsed; 
     tapCountInLastSecond = 0; 
     NSLog(@"Average: %f", averageTapsPerSecond); 
    } 
} 
+0

당신이하고 싶은 일에 따라 상당히 간단하지만, 우선 어떻게 탭 수를 멈출 계획입니까? 그리고 무엇을 성취하려고합니까? –

+0

탭을 만들지 않을 때를 제외하고 초당 평균 탭을 계산하여 화면에서 이미지를 배치하는 데 사용하려고합니다. –

+0

작동하지 않는 탭이없는 시간 계산을 중지하려면 항상 타이머를 켜야합니다. 이미지를 위로 이동하려면 더 빠르게 탭해야하는 것처럼 상상해보십시오. 너는 이미지가 다시 아래로 움직이기 시작하는 것을 두드리지 않는다, 나는 그것을 올바르게 얻는다? –

답변

3

는, 그럼 당신은 버튼

- (void)incrementTapCount 
{ 
    tapCountInPastSecond++; 
} 

매초마다 발생하는 타이머를 만들기를 화면 또는를 누를 때 호출이 방법을 추가하는 카운터를

int tapCountInPastSecond = 0; 
float averageTapsPerSecond = 0; 
int secondsElapsed  = 0; 

를 넣어 계산을 수행 한 다음 탭 수를 재설정합니다.

이제

당신은처럼 타이머를 초기화하기 수

[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerActions) userInfo:Nil repeats:YES]; 

그런 다음 어떤 시점에서 평균 도청을/얻을 수 있습니다 둘째 당신에게 값을 averageTapsPerSecond

희망이 메이크업 감각을 읽어

+0

에 의해 구현되었습니다. 그러나 평균이 증가 할 수는 있지만 감소하지는 않습니다. 예를 들어 평균 5 회라면 1 초당 한 번 클릭하면 평균값이 떨어지지 않습니다. 아픈 코드를 보여주기 위해 내 게시물을 편집하십시오. –

+0

if 문을 제거하더라도 평균값은 여전히 ​​떨어지지 않습니다. –

+1

올바른 평균값을 얻으려면 다음과 같이 변경하십시오. averageTapsPerSecond = (averageTapsPerSecond * (secondsElapsed-1) + tapCountInPastSecond)/secondsElapsed; – erkanyildiz

관련 문제