2016-08-14 2 views
0

나는 내 자신의 진행률 표시 줄을 프로그래밍하려고하는데 이미이 작업이 진행 중입니다. 백분율 값이 변경 될 때마다 막대가 변경되어 막대가 올바른 진행률을 표시합니다.진행률 막대 - 백분율 사이에서 부드럽게 전환

이제 내 문제는 막대가 항상 다음 상태로 점프하고 그 사이에 부드러운 전환이 없다는 것입니다. 이제 제 질문은 어떻게 단계들 사이에서 부드러운 전환을 만들 수 있습니까?

정보 : 나는 게임의 fpscount와 막대의 위치 + 크기를 알고 있습니다. 그리고 나는 자바로 프로그래밍을하고있다. (나는이 정보가 불필요하다고 생각한다.)

+2

무엇을 시도 했습니까? 몇 가지 코드를 보여주십시오. 너비를 직접 설정하는 대신 원하는 너비/퍼센트가 될 때까지 너비를 늘릴 수 있습니다. – Cristy

답변

1

일반적인 답변이 아니라 언어마다 다르다.

너비를 직접 설정하는 대신 원하는 너비/백분율까지 너비를 늘릴 수 있습니다.

진행률 표시 줄의 너비를 설정하려면 bar.setWidth(val) 함수가 있다고 가정합니다.

이 당신의 업데이트 루프하자 (60FPS에서 실행) : 막대를 설정하지 :

update { 
    ... 
    ... 

    double percentageLoaded; // this is your parameter probably 

    static const int incrementStep = 1; // increase this for faster animation 

    // Get the width of the bar for the current percentage 
    int desiredWidth = percentageLoaded * bar.totalWidth; 


    if(bar.currentWidth < desiredWidth) { 
     bar.currentWidth += incrementStep; 
    } 
} 

여전히 당신이 당신의 incrementStep (예 : 1보다 큰 경우 확인해야 할 몇 가지가 있습니다 너비가 100 %보다 큽니다.)

여기에 작은 그림이 있습니다. 어쩌면 잘 이해할 수 있습니다. 이 예에서 증가 단계는 1px이고 막대 너비는 4px이고로드는 50%으로 설정되어 있습니다. 막대가 너비가 2px이어야합니다. enter image description here

+0

그것을 undeerstood 성공적으로 그것을 구현, 감사합니다! :) – Niklas

+0

질문이 하나 더 있습니다 ... 만약 내가 작은 단계 (0.001을 말하면됩니다)가 증가 단계에 대해 확실하게, 그 천이가 완전히 부드럽게 진행됩니다. 바에 최소한 20 초가 필요하기 때문에 2 초 안에 준비 할 수 있습니다. 이 문제를 해결하려면 어떤 해결책이 있습니까? 거리가 멀어지면 기하 급수적으로 커지는 걸까요? 제발 도와주세요. 고마워요! :) – Niklas

+0

예, 현재 막대 너비와 원하는 막대 너비 사이의 거리를 기준으로 incrementStep을 계산할 수 있습니다. 예 : 애니메이션에 1 초가 걸리고 애니메이션의 차이가 40px이고 fps가 60fps 인 경우 증가 단계는 40px/(60fps * 1 초)입니다. – Cristy