Chức năng tuyệt vời cho điểm số cán lên của người hâm mộ?


7

Tôi đang thêm vào điểm số của người chơi và tôi đang sử dụng công thức cho mỗi khung hình như:

int score, displayedScore ;// score is ACTUAL score player has,
// displayedScore is what is shown this frame to the player
// (the creeping/"rolling" number)

float disparity = score - displayedScore ;
int d = disparity * .1f ; // add 1/10 of the difference,
if( !d )  d = signum( disparity ) ; // last 10 go by 1's
score += d ;

Ở đâu

inline int signum( float val ){
  if( val > 0 )  return 1 ;
  else if( val < 0 )  return -1 ;
  else return 0 ;
}

Vì vậy, nó là loại công việc mà nó tạo ra những thay đổi lớn một cách nhanh chóng, sau đó nó leo lên trong một vài lần cuối cùng.

Nhưng tôi đang tìm kiếm các chức năng leo điểm tốt hơn (hoặc có thể được biết đến?). Bất kỳ ai?

Câu trả lời:


6

Thanh thiếu niên làm việc tuyệt vời cho điều này, và bất kỳ thư viện tween sẽ có những gì bạn cần.

Chức năng dưới đây là những gì tôi đã sử dụng trước đây trong một vài trò chơi. Nó cuộn rất nhanh lúc đầu và sau đó chậm lại một chút ở gần cuối, gợi nhớ đến các máy đánh bạc.

void addToScore( float val ) {
    score += val;

    //  Stop the current tween, in case one is still running.
    TweenLib.stop();

    //  Tween displayedScore to the value of score over the period
    //  of one second with a cubic easing function.
    TweenLib.tween( displayedScore, score, 1.0, Cubic.EaseOut);
}

1
Bạn sẽ tha thứ cho tôi nếu tôi do dự với Google 'Twrs' ...
Tin phù thủy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.