package Ġorg . aj m . l af ork ids . actors Ċ Ċ import Ġcom . badlogic . gdx . G dx Ċ import Ġcom . badlogic . gdx . math . Interpolation Ċ import Ġcom . badlogic . gdx . math . Math Utils Ċ import Ġcom . badlogic . gdx . math . Vector 2 Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . ui . Label Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . ui . Skin Ċ import Ġcom . badlogic . gdx . utils . Align Ċ import Ġorg . aj m . l af ork ids . getText Width Ċ Ċ /** Ċ Ġ* ĠLabel Ġfor Ġshowing Ġan Ġinteger Ġscore . Ċ Ġ*/ Ċ class ĠScore Label Ġ: ĠLabel Ġ{ ĊĊĠĠĠ Ġ// Ġsettings ĊĠĠĠ Ġvar Ġinterpolation Method : ĠInterpol ation Ġ= ĠInterpol ation . pow 4 Out ĊĠĠĠ Ġvar Ġinterpolation Time Ġ= Ġ 0 . 7 5 f ĊĊĠĠĠ Ġprivate Ġvar Ġdiff Label : ĠLabel ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġscore Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Displayed Score Ġ= Ġdisplayed Score ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= Ġvalue Ġ- Ġscore ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscore Set At Time Ġ= ĠSystem . currentTimeMillis () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcount Ġup Ġor Ġdown Ġthe Ġdisplayed Ġscore ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġanimate () Ġ= Ġ{ Ġl erp : ĠFloat Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisplayed Score Ġ= ĠMath Utils . lerp ( previous Displayed Score . toFloat (), Ġscore . toFloat (), Ġl erp ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Text ( display ed Score . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorg . aj m . l af ork ids . animate ( animate (), Ġinterpolation Method , Ġinterpolation Time ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdisplay Ġthe Ġdifference Ġfor Ġa Ġwhile , Ġif Ġthere Ġis Ġone ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( diff Ġ!= Ġ 0 Ġ&& Ġstage Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiff Label ?. remove () Ġ// Ġonly Ġone Ġat Ġa Ġtime ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġprepare Ġlabel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsign Ġ= Ġif Ġ( diff Ġ< Ġ 0 ) Ġ"" Ġelse Ġ" +" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiff Label Ġ= ĠLabel ( sign Ġ+ Ġdiff . toString (), Ġstyle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlabel Ġ= Ġdiff Label Ġas ĠLabel ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage . add Actor ( diff Label ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpos Ġ= Ġlocal To Stage Coordinates ( Vector 2 ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . setPosition ( pos . x Ġ+ Ġwidth Ġ- ĠgetText Width ( style . font , Ġscore . toString ()) Ġ- Ġlabel . width Ġ- Ġstyle . font . space Width Ġ* Ġ 2 f , Ġpos . y ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġprepare Ġopacity Ġanimation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinterpolation Time Ġ= Ġinterpolation Time Ġ* Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġdisplay Diff () Ġ{ Ġ// Ġrecursive ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġalpha Ġ= ĠMath Utils . clamp (( System . currentTimeMillis () Ġ- Ġscore Set At Time ) Ġ/ Ġ 1 0 0 0 f , Ġ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterpolation Time ) Ġ/ Ġinterpolation Time ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġremove Ġif Ġdone , Ġotherwise Ġcontinue Ġanimation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( alpha Ġ== Ġ 1 f ) Ġlabel . remove () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠG dx . app . post Runnable Ġ{ Ġdisplay Diff () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġanimate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalpha Ġ*= Ġ 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( alpha Ġ> Ġ 1 ) Ġalpha Ġ= Ġ 2 f Ġ- Ġalpha ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl erp Ġ= ĠInterpol ation . s ine . apply ( interpolation Method . apply ( alpha )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . color . a Ġ= Ġl erp ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Diff () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġauxiliary ĊĠĠĠ Ġprivate Ġvar Ġprevious Displayed Score Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġdisplayed Score Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġscore Set At Time Ġ= ĠSystem . currentTimeMillis () ĊĊĠĠĠ Ġconstructor ( skin : ĠSk in , Ġscore : ĠInt ) Ġ: Ġsuper (" 0 0 0 0 0 0 0 0 0 ", Ġskin ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Alignment ( Align . center ) ĊĊĠĠĠĠĠĠĠ Ġprevious Displayed Score Ġ= Ġscore ĊĠĠĠĠĠĠĠ Ġdisplayed Score Ġ= Ġscore ĊĠĠĠĠĠĠĠ Ġthis . score Ġ= Ġscore ĊĠĠĠ Ġ} Ċ }