package Ġcc . ao ei uv 0 2 0 . speed Ċ Ċ import Ġcom . badlogic . gdx . G dx Ċ import Ġcom . badlogic . gdx . Screen Adapter Ċ import Ġcom . badlogic . gdx . graphics . Color Ċ import Ġcom . badlogic . gdx . graphics . GL 2 0 Ċ import Ġcom . badlogic . gdx . graphics . Pixmap Ċ import Ġcom . badlogic . gdx . graphics . Texture Ċ import Ġcom . badlogic . gdx . graphics . g 2 d . Bitmap Font Ċ import Ġcom . badlogic . gdx . graphics . g 2 d . Texture Region Ċ import Ġcom . badlogic . gdx . math . Vector 2 Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . Input Event Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . Input Listener Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . Stage Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . ui . Label Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . ui . TextField Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . utils . ClickListener Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . utils . Texture Region Drawable Ċ import Ġcom . badlogic . gdx . utils . viewport . Fit Viewport Ċ import Ġcom . badlogic . gdx . utils . viewport . Stretch Viewport Ċ import Ġcom . badlogic . gdx . utils . viewport . Viewport Ċ Ċ /** Ċ Ġ* Ċ Ġ* ĠCreated Ġby ĠA o E iu V 0 2 0 Ġon Ġ 2 0 1 7 . 1 1 . 1 8 - 1 6 : 4 4 : 5 3 . Ċ Ġ*/ Ċ class ĠGame Screen Ġ: ĠScreen Adapter () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcontrol View Port : ĠView port Ġ= ĠSt retch Viewport ( 1 0 8 0 f , Ġ 7 2 0 f ) ĊĠĠĠ Ġprivate Ġval Ġgame View Port : ĠView port Ġ= ĠFit Viewport ( 4 0 0 f , Ġ 7 2 0 f ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbackground : ĠBackground ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġhero : ĠHero ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbarrier : ĠBar rier ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġstart : ĠStart Button ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsettings : ĠSettings Button ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontrol Stage : ĠStage ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġgame Over Stage : ĠStage ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġhint Stage : ĠStage ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsetting Stage : ĠStage ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġgame Stage : ĠStage ĊĠĠĠ Ġprivate Ġvar Ġsensitivity Ġ= Ġ 2 f ĊĠĠĠ Ġprivate Ġvar Ġmax Speed Ġ= Ġ 1 0 f ĊĠĠĠ Ġprivate Ġvar Ġspeed Multiple Ġ= Ġ 1 f ĊĠĠĠ Ġprivate Ġvar Ġgame Running Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġis Setting Now Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġis Hint Now Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtf Sensitivity : ĠTextField ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtf Max Speed : ĠTextField ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġl Distance : ĠLabel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġl Score : ĠLabel ĊĠĠĠ Ġprivate Ġvar Ġdistance : ĠDouble Ġ= Ġ 0 . 0 ĊĠĠĠ Ġprivate Ġvar Ġscore : ĠDouble Ġ= Ġ 0 . 0 ĊĠĠĠ Ġprivate Ġval Ġgame Font Ġ= ĠBitmap Font (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġdata . set Scale ( 2 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġbackground Ġ= ĠBackground () ĊĠĠĠĠĠĠĠ Ġhero Ġ= ĠHero () ĊĠĠĠĠĠĠĠ Ġbarrier Ġ= ĠBar rier ( this , Ġhero ) ĊĠĠĠĠĠĠĠ Ġstart Ġ= ĠStart Button () ĊĠĠĠĠĠĠĠ Ġsettings Ġ= ĠSettings Button () ĊĠĠĠĠĠĠĠ Ġcontrol Stage Ġ= ĠStage ( control View Port ) ĊĠĠĠĠĠĠĠ Ġgame Over Stage Ġ= ĠStage () ĊĠĠĠĠĠĠĠ Ġhint Stage Ġ= ĠStage ( control View Port ) ĊĠĠĠĠĠĠĠ Ġsetting Stage Ġ= ĠStage ( game View Port ) ĊĠĠĠĠĠĠĠ Ġgame Stage Ġ= ĠStage ( game View Port ) ĊĊĠĠĠĠĠĠĠ Ġcontrol Stage . addListener ( object Ġ: ĠInput Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġmap : ĠMutable Map < Int , ĠPair < Vector 2 , ĠBoolean >> Ġ= Ġmutable Map Of () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtouch Down ( event : ĠInput Event ?, Ġx : ĠFloat , Ġy : ĠFloat , Ġpointer : ĠInt , Ġbutton : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Speed Ġ= Ġx Ġ> Ġcontrol Stage . width Ġ/ Ġ 3 Ġ* Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap . put ( pointer , ĠVector 2 ( x , Ġy ) Ġto Ġis Speed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Speed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Speed ( y Ġ/ Ġcontrol Stage . height Ġ* Ġmax Speed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtouch Drag ged ( event : ĠInput Event ?, Ġx : ĠFloat , Ġy : ĠFloat , Ġpointer : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġmap [ pointer ] !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġp . first ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . set ( x Ġ- Ġv . x , Ġy Ġ- Ġv . y ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p . second ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Speed ( y Ġ/ Ġcontrol Stage . height Ġ* Ġmax Speed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmove ( s ensitivity Ġ* Ġv . x ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . set ( x , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtouch Up ( event : ĠInput Event ?, Ġx : ĠFloat , Ġy : ĠFloat , Ġpointer : ĠInt , Ġbutton : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġmap [ pointer ] !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p . second ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Speed ( 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġstart . set Center ( game Stage . width Ġ/ Ġ 2 , Ġgame Stage . height Ġ/ Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġstart . addListener ( object Ġ: ĠClick Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclicked ( event : ĠInput Event ?, Ġx : ĠFloat , Ġy : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġsettings . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Size ( 8 0 f , Ġ 8 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Position ( game Stage . width Ġ- Ġwidth , Ġgame Stage . height Ġ- Ġheight ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Listener ( object Ġ: ĠClick Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclicked ( event : ĠInput Event ?, Ġx : ĠFloat , Ġy : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Setting () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġls Ġ= ĠLabel . Label Style (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfont Ġ= Ġgame Font ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfont Color Ġ= ĠColor . WHITE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġt fs Ġ= ĠTextField . TextField Style (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfont Ġ= Ġgame Font ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfont Color Ġ= ĠColor . WHITE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠP ix map ( 1 , Ġ 1 , ĠP ix map . Format . RGB 8 8 8 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Color ( Color . DARK _ GRAY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ä¸īä¸ª Texture æ²¡æľī éĶĢ æ¯ ģ ï¼Į ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbackground Ġ= ĠTexture Region Drawable ( Texture Region ( Texture ( p ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Color ( Color . GREEN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselection Ġ= ĠTexture Region Drawable ( Texture Region ( Texture ( p ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Color ( Color . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor Ġ= ĠTexture Region Drawable ( Texture Region ( Texture ( p ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . dispose () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsetting Stage . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġy Ġ= Ġsetting Stage . height Ġ/ Ġ 1 0 Ġ* Ġ 8 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Actor ( Label (" Sensitivity ", Ġls ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Position ( 8 0 f , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ-= Ġheight Ġ+ Ġ 1 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtf Sensitivity Ġ= ĠTextField ( s ensitivity . toString (), Ġt fs ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Position ( 8 0 f , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ-= Ġheight Ġ+ Ġ 1 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Actor ( tf Sensitivity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Actor ( Label (" Max ĠSpeed ", Ġls ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Position ( 8 0 f , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ-= Ġheight Ġ+ Ġ 1 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtf Max Speed Ġ= ĠTextField ( max Speed . toString (), Ġt fs ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Position ( 8 0 f , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ-= Ġheight Ġ+ Ġ 1 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Actor ( tf Max Speed ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġhint Stage . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Actor ( Label (" Move ", Ġls ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Position ( 1 0 0 f , Ġ 1 0 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Actor ( Label (" Change ĠSpeed ", Ġls ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Position ( hint Stage . height , Ġhint Stage . height Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Listener ( object Ġ: ĠClick Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclicked ( event : ĠInput Event ?, Ġx : ĠFloat , Ġy : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Hint Now Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame View Port . update ( screen . first , Ġscreen . second ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Over () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġgame Stage . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Actor ( background ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Actor ( barrier ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Actor ( hero ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġy Ġ= Ġsetting Stage . height Ġ/ Ġ 1 0 Ġ* Ġ 9 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl Distance Ġ= ĠLabel (" 0 ", Ġls ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Position ( 1 0 f , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ-= Ġheight Ġ+ Ġ 1 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl Score Ġ= ĠLabel (" 0 ", Ġls ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Position ( 1 0 f , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ-= Ġheight Ġ+ Ġ 1 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Actor ( l Distance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Actor ( l Score ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbarrier . reset () ĊĊĠĠĠĠĠĠĠ Ġhint () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Speed ( speed : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġspeed Multiple Ġ= Ġspeed ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmove ( dX : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( hero . top Ġ< Ġbarrier . y Ġ|| Ġhero . y Ġ> Ġbarrier . top ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhero . move By ( dX , Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbarrier . children . map NotNull Ġ{ Ġblock Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dX Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock . x . take If Ġ{ Ġit Ġ>= Ġhero . right Ġ&& Ġit Ġ<= Ġhero . right Ġ+ Ġd X Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock . right . take If Ġ{ Ġit Ġ<= Ġhero . x Ġ&& Ġit Ġ>= Ġhero . x Ġ+ Ġd X Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. min By Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMath . abs ( it Ġ- Ġhero . x ) ĊĠĠĠĠĠĠĠ Ġ} ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dX Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhero . move By ( it Ġ- Ġhero . right , Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhero . move By ( it Ġ- Ġhero . x , Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġhero . move By ( dX , Ġ 0 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġscreen : ĠPair < Int , ĠInt > ĊĊĠĠĠ Ġoverride Ġfun Ġresize ( width : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġscreen Ġ= ĠPair ( width , Ġheight ) ĊĠĠĠĠĠĠĠ Ġif Ġ( is Hint Now ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontrol View Port . update ( width , Ġheight ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame View Port . update ( width , Ġheight ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġpause Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġpause () Ġ{ ĊĠĠĠĠĠĠĠ Ġpause Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġresume () Ġ{ ĊĠĠĠĠĠĠĠ Ġpause Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender ( delta : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ ĠG dx . gl . gl Clear Color ( 0 f , Ġ 0 f , Ġ 0 f , Ġ 1 f ) ĊĠĠĠĠĠĠĠ ĠG dx . gl . gl Clear ( GL 2 0 . GL _ COLOR _ BUFFER _ BIT ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Hint Now ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhint Stage . draw () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( game Running Ġ&& Ġ! pause ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd Ġ= Ġspeed Multiple Ġ* Ġdelta ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame Stage . act ( d ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdistance Ġ+= Ġd ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscore Ġ+= Ġd Ġ* Ġspeed Multiple ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl Distance . setText ( String . format ("% . 2 f ", Ġdistance )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl Score . setText ( String . format ("% . 2 f ", Ġscore )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġgame Stage . draw () ĊĠĠĠĠĠĠĠ Ġgame Over Stage . draw () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Setting Now ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetting Stage . draw () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontrol Stage . dispose () ĊĠĠĠĠĠĠĠ Ġgame Stage . dispose () ĊĠĠĠĠĠĠĠ Ġbackground . dispose () ĊĠĠĠĠĠĠĠ Ġhero . dispose () ĊĠĠĠĠĠĠĠ Ġbarrier . dispose () ĊĠĠĠĠĠĠĠ Ġstart . dispose () ĊĠĠĠĠĠĠĠ Ġsettings . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgame Start () Ġ{ ĊĠĠĠĠĠĠĠ ĠG dx . input . input Processor Ġ= Ġcontrol Stage ĊĠĠĠĠĠĠĠ Ġif Ġ( is Setting Now ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetting Stage . root . remove Actor ( start ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsensitivity Ġ= Ġtf Sensitivity . text . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ(_ : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Speed Ġ= Ġtf Max Speed . text . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ(_ : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame Stage . root . remove Actor ( start ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġgame Stage . root . remove Actor ( settings ) ĊĠĠĠĠĠĠĠ Ġset Speed ( 1 f ) ĊĠĠĠĠĠĠĠ Ġdistance Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġscore Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġbarrier . reset () ĊĠĠĠĠĠĠĠ Ġgame Running Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġis Setting Now Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgame Over () Ġ{ ĊĠĠĠĠĠĠĠ ĠG dx . input . input Processor Ġ= Ġgame Stage ĊĠĠĠĠĠĠĠ Ġgame Stage . add Actor ( start ) ĊĠĠĠĠĠĠĠ Ġgame Stage . add Actor ( settings ) ĊĠĠĠĠĠĠĠ Ġgame Running Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgame Setting () Ġ{ ĊĠĠĠĠĠĠĠ ĠG dx . input . input Processor Ġ= Ġsetting Stage ĊĠĠĠĠĠĠĠ Ġgame Stage . root . remove Actor ( start ) ĊĠĠĠĠĠĠĠ Ġsetting Stage . add Actor ( start ) ĊĠĠĠĠĠĠĠ Ġis Setting Now Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhint () Ġ{ ĊĠĠĠĠĠĠĠ ĠG dx . input . input Processor Ġ= Ġhint Stage ĊĠĠĠĠĠĠĠ Ġis Hint Now Ġ= Ġtrue ĊĠĠĠ Ġ} Ċ }