package Ġcom . p im use um . game . chinese chess . engine . stage Ċ Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . Stage Ċ import Ġcom . badlogic . gdx . utils . viewport . Viewport Ċ import Ġcom . p im use um . game . chinese chess . engine . actor . Image Actor Ċ import Ġcom . badlogic . gdx . graphics . g 2 d . Texture Region Ċ import Ġcom . badlogic . gdx . G dx Ċ import Ġcom . badlogic . gdx . audio . Music Ċ import Ġcom . badlogic . gdx . audio . Sound Ċ import Ġcom . badlogic . gdx . graphics . Texture Ċ import Ġcom . badlogic . gdx . math . Vector 2 Ċ import Ġcom . p im use um . game . chinese chess . model . Che ss Helper Ċ import Ġcom . p im use um . game . chinese chess . engine . actor . Che ss Board Actor Ċ import Ġcom . p im use um . game . chinese chess . engine . actor . Che ss man Actor Ċ import Ġcom . p im use um . game . chinese chess . engine . constant . Game Mode Ċ import Ġcom . p im use um . game . chinese chess . engine . constant . Log Tag Ċ import Ġcom . p im use um . game . chinese chess . engine . constant . Game Res Ċ import Ġcom . p im use um . game . chinese chess . engine . tools . Engine Tools Ċ import Ġcom . p im use um . game . chinese chess . model . chess man . Che ss man Ċ import Ġcom . p im use um . game . chinese chess . model . chess man . General Che ss man Ċ import Ġcom . p im use um . game . chinese chess . model . comp anion .* Ċ import Ġcom . p im use um . game . chinese chess . model . observer . Oper ate Observer Ċ Ċ /** Ċ Ġ* ĠDesc Ġ: ĠChe ss Vers us Stage Ċ Ġ* ĠAuthor Ġ: ĠJ ier vs Ċ Ġ* ĠDate Ġ: Ġ 2 0 1 9 / 5 / 1 6 Ċ Ġ*/ Ċ class ĠChe ss Vers us Stage ( var Ġmode Ġ: ĠGame Mode Ġ, Ġviewport : ĠView port ) Ġ: ĠStage ( viewport ) Ġ, ĠOper ate Observer Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġche ss board Width Ġ: ĠFloat Ġ= Ġ 0 F ĊĠĠĠ Ġprivate Ġvar Ġche ss board Height Ġ: ĠFloat Ġ= Ġ 0 F ĊĊĠĠĠ Ġprivate Ġvar Ġche ss board Logic Width Ġ: ĠFloat Ġ= Ġ 0 F ĊĠĠĠ Ġprivate Ġvar Ġche ss board Logic Height Ġ: ĠFloat Ġ= Ġ 0 F ĊĊĠĠĠ Ġprivate Ġvar Ġche ss board Unit Width Ġ: ĠFloat Ġ= Ġ 0 F ĊĠĠĠ Ġprivate Ġvar Ġche ss board Unit Height Ġ: ĠFloat Ġ= Ġ 0 F ĊĊĠĠĠ Ġprivate Ġvar Ġche ss man Size Ġ: ĠFloat Ġ= Ġ 0 F ĊĊĠĠĠ Ġprivate Ġvar Ġorigin Location X Ġ= Ġ 0 F ĊĠĠĠ Ġprivate Ġvar Ġorigin Location Y Ġ= Ġ 0 F ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAct ors ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbg Actor Ġ: ĠImage Actor ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġori Actor Ġ: ĠChe ss man Actor ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdes Actor Ġ: ĠChe ss man Actor ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġche ss board Actor Ġ: ĠChe ss Board Actor ĊĠĠĠ Ġprivate Ġvar Ġche ss man Act ors Ġ: ĠArray < Array < Che ss man Actor ? >> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠArray ( Che ss Helper . Row Capacity ){ Array < Che ss man Actor ? >( Che ss Helper . Column Capacity ) Ġ{ Ġnull }} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSounds ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpick Sound Ġ: ĠSound ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdrop Sound Ġ: ĠSound ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcapture Sound Ġ: ĠSound ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMusic ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbg m Ġ: ĠMusic ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// chess board Ġbg Ġsize ĊĠĠĠĠĠĠĠ Ġche ss board Width Ġ= Ġwidth Ġ* Ġ( 9 F Ġ/ Ġ 1 0 F ) ĊĠĠĠĠĠĠĠ Ġche ss board Height Ġ= Ġche ss board Width Ġ* Ġ( Game Res . Real Che ss board Height Ġ/ ĠGame Res . Real Che ss board Width ) ĊĊĠĠĠĠĠĠĠ Ġ// chess board Ġlogic Ġsize ĊĠĠĠĠĠĠĠ Ġche ss board Logic Width Ġ= Ġche ss board Width Ġ* Ġ(( Game Res . Real Che ss board Width Ġ- Ġ 2 Ġ* ĠGame Res . Real Horizontal Margin ) Ġ/ ĠGame Res . Real Che ss board Width ) ĊĠĠĠĠĠĠĠ Ġche ss board Logic Height Ġ= Ġche ss board Height Ġ* Ġ(( Game Res . Real Che ss board Height Ġ- Ġ 2 Ġ* ĠGame Res . Real Vertical Margin ) Ġ/ ĠGame Res . Real Che ss board Height ) ĊĊĠĠĠĠĠĠĠ Ġ// chess board Ġunit Ġsize Ġ( not Ġsquare ) ĊĠĠĠĠĠĠĠ Ġche ss board Unit Width Ġ= Ġche ss board Logic Width Ġ/ Ġ 8 ĊĠĠĠĠĠĠĠ Ġche ss board Unit Height Ġ= Ġche ss board Logic Height Ġ/ Ġ 9 ĊĊĠĠĠĠĠĠĠ Ġche ss man Size Ġ= Ġche ss board Unit Width Ġ* Ġ 1 9 Ġ/ Ġ 2 0 ĊĊĠĠĠĠĠĠĠ Ġ// ensure Ġlogic Ġoriginal Ġpoint Ġlocation ĊĠĠĠĠĠĠĠ Ġorigin Location X Ġ= Ġ( width Ġ/ Ġ 2 F ) Ġ- Ġ( 5 F Ġ* Ġche ss board Unit Width ) ĊĠĠĠĠĠĠĠ Ġorigin Location Y Ġ= Ġ( height Ġ/ Ġ 2 F ) Ġ- Ġ( 5 . 5 F Ġ* Ġche ss board Unit Height ) ĊĊĠĠĠĠĠĠĠ ĠChe ss Helper . observer Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġinit Act ors () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInit ĠAct ors ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Act ors (){ ĊĠĠĠĠĠĠĠ Ġ// create Ġbackground Ġactor ĊĠĠĠĠĠĠĠ Ġval Ġbg Texture Ġ= ĠTexture ( G dx . files . internal ( Game Res . Actor _ Game _ Bg )) ĊĠĠĠĠĠĠĠ Ġbg Actor Ġ= ĠImage Actor ( Texture Region ( bg Texture )) ĊĠĠĠĠĠĠĠ Ġbg Actor . set Center ( width Ġ/ Ġ 2 , Ġheight Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġadd Actor ( bg Actor ) ĊĊĠĠĠĠĠĠĠ Ġ// create Ġche ss board Ġactor ĊĠĠĠĠĠĠĠ Ġval Ġche ss board Texture Ġ= ĠTexture ( G dx . files . internal ( Game Res . Actor _ Che ss board )) ĊĠĠĠĠĠĠĠ Ġche ss board Actor Ġ= ĠChe ss Board Actor ( Texture Region ( chess board Texture )) ĊĠĠĠĠĠĠĠ Ġche ss board Actor . setSize ( chess board Width , chess board Height ) ĊĠĠĠĠĠĠĠ Ġche ss board Actor . set Center ( width Ġ/ Ġ 2 , Ġheight Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġadd Actor ( chess board Actor ) ĊĊĠĠĠĠĠĠĠ Ġ// create Ġorigin Ġactor ĊĠĠĠĠĠĠĠ Ġval Ġorigin Texture Ġ= ĠTexture ( G dx . files . internal ( Game Res . Actor _ Origin _ Trace )) ĊĠĠĠĠĠĠĠ Ġori Actor Ġ= ĠChe ss man Actor ( Texture Region ( origin Texture )) ĊĠĠĠĠĠĠĠ Ġori Actor . setSize ( chess board Unit Width , chess board Unit Width ) ĊĠĠĠĠĠĠĠ Ġori Actor . set Center ( 2 Ġ* Ġwidth Ġ, Ġ 2 Ġ* Ġheight ) Ġ// åĪĿå§ĭåĮĸ æĹ¶åĢĻ åħĪ æĶ¾åľ¨ ĠStage Ġ å¤ĸ éĿ¢ ĊĠĠĠĠĠĠĠ Ġori Actor . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġadd Actor ( ori Actor ) ĊĊĠĠĠĠĠĠĠ Ġ// create Ġdestination Ġactor ĊĠĠĠĠĠĠĠ Ġval Ġdes Texture Ġ= ĠTexture ( G dx . files . internal ( Game Res . Actor _ Des _ Trace )) ĊĠĠĠĠĠĠĠ Ġdes Actor Ġ= ĠChe ss man Actor ( Texture Region ( des Texture )) ĊĠĠĠĠĠĠĠ Ġdes Actor . setSize ( chess board Unit Width , chess board Unit Width ) ĊĠĠĠĠĠĠĠ Ġdes Actor . set Center ( 2 Ġ* Ġwidth Ġ, Ġ 2 Ġ* Ġheight ) Ġ// åĪĿå§ĭåĮĸ æĹ¶åĢĻ åħĪ æĶ¾åľ¨ ĠStage Ġ å¤ĸ éĿ¢ ĊĠĠĠĠĠĠĠ Ġdes Actor . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġadd Actor ( des Actor ) ĊĊĠĠĠĠĠĠĠ Ġ// create Ġsound ĊĠĠĠĠĠĠĠ Ġpick Sound Ġ= ĠG dx . audio . new Sound ( G dx . files . internal ( Game Res . Sound _ Pick )) ĊĠĠĠĠĠĠĠ Ġdrop Sound Ġ= ĠG dx . audio . new Sound ( G dx . files . internal ( Game Res . Sound _ Drop )) ĊĊĠĠĠĠĠĠĠ Ġ// load Ġche ss men ĊĠĠĠĠĠĠĠ ĠChe ss Helper . load Che ss men () ĊĊĠĠĠĠĠĠĠ Ġ// create Ġbg m Ċ // ĠĠĠĠĠ Ġbg m Ġ= ĠG dx . audio . new Music ( G dx . files . internal (" sound / bg m . mp 3 ")) Ċ // ĠĠĠĠĠ Ġbg m . volume Ġ/= Ġ 4 Ċ // ĠĠĠĠĠ Ġbg m . play () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĩĬæĶ¾ èµĦæºĲ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . dispose () ĊĠĠĠĠĠĠĠ Ġpick Sound . dispose () ĊĠĠĠĠĠĠĠ Ġdrop Sound . dispose () ĊĠĠĠĠĠĠĠ Ġbg m . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¤ĦçĲĨ æ¸¸æĪı çĤ¹åĩ» æĵįä½ľ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġtouch Down ( screen X : ĠInt , Ġscreen Y : ĠInt , Ġpointer : ĠInt , Ġbutton : ĠInt ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġstage Vector Ġ: ĠVector 2 Ġ= Ġscreen To Stage Coordinates ( Vector 2 ( screen X . toFloat (), Ġscreen Y . toFloat ())) ĊĠĠĠĠĠĠĠ Ġplay Che ss ( stage Vector ) Ċ Ċ // ĠĠĠĠĠĠĠ ĠG dx . app . log (" J ier vs ", Ġ" viewport X : Ġ${ viewport . world Width } Ġ.. ... viewport Y : Ġ${ viewport . world Height } Ġ Ġ\ r \ n Ġ" Ġ+ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" origin Location X Ġ: $ origin Location X ..... origin Location Y Ġ: $ origin Location Y Ġ\ r \ n Ġ" Ġ+ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" stage Vector X Ġ: ${ vector . x } ..... stage Vector Y Ġ: ${ vector . y }" Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è§¦ æĳ ¸ æ£ ĭ çĽĺ ä»¥ åĲİçļĦ æ¸¸æĪı éĢ»è¾ĳ æŃ¥éª¤ ï¼ļ ĊĠĠĠĠ Ġ* Ġ 1 . åħĪ æŁ¥è¯¢ è±¡ æ£ ĭ çļĦ æ£ ĭ åŃĲ å¤Ħ äºİ è¢« éĢīæĭ© çĬ¶æĢģ è¿ĺæĺ¯ èĩªçĶ± çĬ¶æĢģ ĊĠĠĠĠ Ġ* Ġ 2 . æł¹æį® Ġ çĬ¶æĢģ æĵįä½ľ Ġfreedom : éĢī åıĸ Ġ Ġpick : ä¸ĭ æ£ ĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtouch Position Ġ: ĠPosition Ġ// å½ĵåīį è§¦ æĳ ¸ çĤ¹ è½¬æį¢ ä¸º çļĦ å½ĵåīį è±¡ æ£ ĭ åĿĲæłĩ ĊĊĠĠĠ Ġprivate Ġfun Ġplay Che ss ( stage Vector 2 : ĠVector 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// è§¦ æĳ ¸ çĤ¹ è½¬æį¢ ä¸º è±¡ æ£ ĭ åĿĲæłĩ ĊĠĠĠĠĠĠĠ ĠEngine Tools . stage Cover t 2 Position ( stage Vector 2 , origin Location X , origin Location Y , chess board Unit Width , chess board Unit Height )?. let Ġ{ Ġposition -> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtouch Position Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG dx . app . log ( Log Tag . OP Log , Ġ" operation Status Ġ: Ġ${ Che ss Helper . operation Status }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Che ss Helper . operation Status Ġ== ĠOperation Status . Che ss F reed om ) Ġ{// Ġæ£ ĭ åŃĲ èĩªçĶ± çĬ¶æĢģ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è§¦ æĳ ¸ çĤ¹ ä¸ĭ æĺ¯åĲ¦ åŃĺåľ¨ æ£ ĭ åŃĲ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠChe ss Helper . is Exist Che ss man By Position ( touch Position )?. let Ġ{ Ġche ss man Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// pick Ġæ£ ĭ åŃĲ Ġï¼Į actor Ġ çº ¹ çĲĨ æĶ¹åıĺ æĪĲ Ġpicked Ġ çĬ¶æĢģ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Che ss Helper . pick Che ss man ( touch Position )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpick Sound . play () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// éļĲèĹı ä¸Ĭ ä¸ĢæŃ¥ ä¸ĭ æ£ ĭ è½ ¨ è¿ ¹ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġori Actor . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdes Actor . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEngine Tools . replace Actor Texture ( chess man Act ors [ touch Position . row ][ touch Position . column ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGame Res . query Res Path By Pick ed Che ss man ( chess man )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġche ss man Act ors [ touch Position . row ][ touch Position . column ]?. setSize ( chess board Unit Width , chess board Unit Width ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ġ// Ġæ£ ĭ åŃĲ å·² éĢīæĭ© çĬ¶æĢģ ï¼Į èĲ½ ä¸ĭ ä¸ĭ æ£ ĭ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠChe ss Helper . move Che ss man ( touch Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG dx . app . log ( Log Tag . OP Log , Ġresult . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/ ******************************** ***** ĠĠĠĠ ĠChe ss board ĠĠĠ ĠOperation ĠĠĠ ĠObserver ĠĠĠĠ Ġ********************************* ******** ***/ ĊĊĠĠĠ Ġoverride Ġfun Ġon Remove Che ss man ( chess man : ĠChe ss man ) Ġ{ Ġ// åĪ¤æĸŃ æĺ¯åĲ¦ æĺ¯ King ï¼Į å¦Ĥæŀľ æĺ¯ åĪĻ æ¸¸æĪı ç»ĵæĿŁ ĊĠĠĠĠĠĠĠ Ġif Ġ( chess man Ġis ĠGeneral Che ss man ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( chess man . chess Type Ġ== ĠChe ss Type . Red ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG dx . app . log ( Log Tag . OP Log , Ġ" Black ĠWin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG dx . app . log ( Log Tag . OP Log , Ġ" Red ĠWin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Act ors () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Move Che ss man ( row : ĠInt , Ġcolumn : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// è°ĥæķ´ ĠActor Ġ ä½įç½® ĊĠĠĠĠĠĠĠ Ġche ss man Act ors [ touch Position . row ][ touch Position . column ]?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot . remove Actor ( chess man Act ors [ touch Position . row ][ touch Position . column ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġche ss man Act ors [ touch Position . row ][ touch Position . column ] Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġche ss man Act ors [ touch Position . row ][ touch Position . column ] Ġ= Ġche ss man Act ors [ row ][ column ] ĊĠĠĠĠĠĠĠ Ġche ss man Act ors [ row ][ column ] Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// actor Ġ çº ¹ çĲĨ æĶ¹åıĺ æĪĲ Ġfreedom Ġ çĬ¶æĢģ , drop Ġæ£ ĭ åŃĲ ĊĠĠĠĠĠĠĠ ĠEngine Tools . replace Actor Texture ( chess man Act ors [ touch Position . row ][ touch Position . column ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGame Res . query Res Path By Normal Che ss man ( chess man Act ors [ touch Position . row ][ touch Position . column ]?. chess man )) ĊĊĠĠĠĠĠĠĠ Ġche ss man Act ors [ touch Position . row ][ touch Position . column ]?. setSize ( chess man Size , chess man Size ) ĊĠĠĠĠĠĠĠ Ġche ss man Act ors [ touch Position . row ][ touch Position . column ]?. ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Center By Role Type ( touch Position . row , touch Position . column , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorigin Location X , origin Location Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġche ss board Unit Width , chess board Unit Height ) ĊĊĠĠĠĠĠĠĠ Ġ// æĺ¾ç¤º æ¡ Į éĿ¢ ä¸Ĭ ä¸ĢæŃ¥ ä¸ĭ æ£ ĭ è½ ¨ è¿ ¹ æıĲç¤º Ġ( æıĲ æ£ ĭ åŃĲ çĤ¹ Ġ-> Ġ èĲ½ åŃĲ çĤ¹ ) ĊĠĠĠĠĠĠĠ Ġori Actor . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġori Actor . set Center By Role Type ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow , column , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorigin Location X , origin Location Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġche ss board Unit Width , chess board Unit Height ) ĊĊĠĠĠĠĠĠĠ Ġdes Actor . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġdes Actor . set Center By Role Type ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtouch Position . row , touch Position . column , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorigin Location X , origin Location Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġche ss board Unit Width , chess board Unit Height ) ĊĊĠĠĠĠĠĠĠ ĠChe ss Helper . drop Che ss man () ĊĠĠĠĠĠĠĠ Ġdrop Sound . play () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Drop Back ( chess man : ĠChe ss man ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// actor Ġ çº ¹ çĲĨ æĶ¹åıĺ æĪĲ Ġfreedom Ġ çĬ¶æĢģ , drop Ġæ£ ĭ åŃĲ ĊĠĠĠĠĠĠĠ ĠEngine Tools . replace Actor Texture ( chess man Act ors [ touch Position . row ][ touch Position . column ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGame Res . query Res Path By Normal Che ss man ( chess man Act ors [ touch Position . row ][ touch Position . column ]?. chess man )) ĊĊĠĠĠĠĠĠĠ Ġche ss man Act ors [ touch Position . row ][ touch Position . column ]?. setSize ( chess man Size , chess man Size ) ĊĊĠĠĠĠĠĠĠ Ġ// æīĵå¼Ģ ä¸Ĭ ä¸ĢæŃ¥ ä¸ĭ æ£ ĭ è½ ¨ è¿ ¹ ĊĠĠĠĠĠĠĠ Ġori Actor . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġdes Actor . isVisible Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ ĠChe ss Helper . drop Che ss man () ĊĠĠĠĠĠĠĠ Ġdrop Sound . play () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonLoad Che ss men () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfor ( row Ġin Ġ 1 Ġuntil ĠChe ss Helper . Row Capacity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( column Ġin Ġ 1 Ġuntil ĠChe ss Helper . Column Capacity ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠChe ss Helper . query Che ss board Info ()[ row ][ column ]?. let Ġ{ Ġche ss man Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// create Ġche ss man Ġactor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGame Res . query Res Path By Normal Che ss man ( chess man )?. let Ġ{ Ġres Path -> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġche ss man Texture Ġ= ĠTexture ( G dx . files . internal ( res Path )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġche ss man Actor Ġ= ĠChe ss man Actor ( Texture Region ( chess man Texture ), chess man ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġche ss man Actor . setSize ( chess man Size , chess man Size ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġche ss man Actor . set Center By Role Type ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġche ss man . position . row , chess man . position . column , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorigin Location X , origin Location Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġche ss board Unit Width , chess board Unit Height ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Actor ( chess man Actor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġche ss man Act ors [ chess man . position . row ][ chess man . position . column ] Ġ= Ġche ss man Actor Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG dx . app . log ( Log Tag . Che ss Log , Ġ"${ chess man . java Class . simple Name }: Ġ${ chess man . position . row } Ġ*" Ġ+ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ${ chess man . position . column }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }