package Ġcom . distr action . fs 2 . states Ċ Ċ import Ġcom . badlogic . gdx . graphics . Color Ċ import Ġcom . badlogic . gdx . graphics . g 2 d . Sprite Batch Ċ import Ġcom . distr action . fs 2 . Constants Ċ import Ġcom . distr action . fs 2 . Context Ċ import Ġcom . distr action . fs 2 . get Atlas Ċ import Ġcom . distr action . fs 2 . use Ċ Ċ class ĠTransition State ( context : ĠContext , Ġprivate Ġval Ġnext State : ĠGameState , Ġprivate Ġval Ġnum Pop : ĠInt Ġ= Ġ 1 ) Ġ: ĠGameState ( context ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġduration Ġ= Ġ 0 . 5 f ĊĠĠĠ Ġprivate Ġvar Ġtime Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġnext Ġ= Ġfalse ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . g sm . depth ++ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( dt : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtime Ġ+= Ġdt ĊĠĠĠĠĠĠĠ Ġif Ġ(! next Ġ&& Ġtime Ġ> Ġduration Ġ/ Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext State . ignore Input Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġnum Pop ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . g sm . pop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . g sm . depth Ġ-= Ġnum Pop Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . g sm . replace ( next State ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . g sm . push ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( time Ġ> Ġduration ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . g sm . depth -- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . g sm . pop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext State . ignore Input Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender ( sb : ĠSprite Batch ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinterp Ġ= Ġtime Ġ/ Ġduration ĊĠĠĠĠĠĠĠ Ġval Ġper c Ġ= Ġif Ġ( interp Ġ< Ġ 0 . 5 f ) Ġinterp Ġ* Ġ 2 f Ġelse Ġ 1 f Ġ- Ġ( time Ġ- Ġduration Ġ/ Ġ 2 ) Ġ/ Ġduration Ġ* Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġsb . color ĊĠĠĠĠĠĠĠ Ġsb . color Ġ= ĠColor . BLACK ĊĠĠĠĠĠĠĠ Ġsb . projection Matrix Ġ= Ġcamera . combined ĊĠĠĠĠĠĠĠ Ġsb . use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . draw ( pixel , Ġ 0 f , ĠConstants . HEIGHT , Ġ 1 f Ġ* ĠConstants . WIDTH , Ġ- perc Ġ* ĠConstants . HEIGHT Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . draw ( pixel , Ġ 0 f , Ġ 0 f , Ġ 1 f Ġ* ĠConstants . WIDTH , Ġper c Ġ* ĠConstants . HEIGHT Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsb . color Ġ= Ġc ĊĠĠĠ Ġ} Ċ }