package Ġorg . fr ice . anim . move Ċ Ċ import Ġorg . fr ice . obj . Abstract Object Ċ import Ġorg . fr ice . obj . F Object Ċ Ċ /** Ċ Ġ* ĠMove Ġwith Ġacceleration , Ġgive Ġacceleration Ġto Ġx Ġand Ġy Ċ Ġ* Ċ Ġ* ĠCreated Ġby Ġice 1 0 0 0 Ġon Ġ 2 0 1 6 / 8 / 1 5 . Ċ Ġ* Ġ@ author Ġice 1 0 0 0 Ċ Ġ* Ġ@ since Ġv 0 . 2 . 2 Ċ Ġ* Ġ@ param Ġax Ġpixels Ġper Ġsecond Ġsquared Ċ Ġ* Ġ@ param Ġay Ġpixels Ġper Ġsecond Ġsquared Ċ Ġ*/ Ċ class ĠAccel erate Move ( var Ġax : ĠDouble , Ġvar Ġay : ĠDouble ) Ġ: ĠSimple Move ( 0 , Ġ 0 ) Ġ{ Ċ ĉ private Ġvar Ġmx Ġ= Ġ 0 . 0 Ċ ĉ private Ġvar Ġmy Ġ= Ġ 0 . 0 Ċ ĉ override Ġfun Ġ` do `( obj : ĠF Object ) Ġ{ Ċĉ ĉ mx Ġ= Ġ( now Ġ- Ġstart ) Ġ* Ġax Ġ/ Ġ 2 Ċĉ ĉ my Ġ= Ġ( now Ġ- Ġstart ) Ġ* Ġay Ġ/ Ġ 2 Ċĉ ĉ val Ġdelta Time Ġ= Ġ( now Ġ- Ġlast Refresh ) Ġ/ Ġ 1 e 6 Ċĉ ĉ last Refresh Ġ= Ġnow Ċĉ ĉ obj . move ( deltaTime Ġ* Ġmx , Ġdelta Time Ġ* Ġmy ) Ċ ĉ } ĊĊ ĉ comp anion Ġobject ĠFactory Ġ{ Ċĉ ĉ /** Ċĉĉ Ġ* Ġ@ author Ġice 1 0 0 0 Ċĉĉ Ġ* Ġ@ since Ġv 1 . 7 . 7 Ċĉĉ Ġ* Ġ@ param Ġangle Ġdegree Ġof Ġcounter clock wise Ġrotation Ġfrom Ġthe Ġx - axis Ċĉĉ Ġ* Ġ@ param Ġacceleration Ġpixels Ġper Ġsecond Ġsquared Ċĉĉ Ġ*/ Ċĉ ĉ @ Jvm Static Ċĉ ĉ fun Ġby Angle ( angle : ĠDouble , Ġacceleration : ĠDouble ) Ġ= Ċĉĉĉ ĉ Accel erate Move ( Math . sin ( angle ) Ġ* Ġacceleration , ĠMath . cos ( angle ) Ġ* Ġacceleration ) Ċ ĉ } Ċ } Ċ Ċ /** Ċ Ġ* ĠCh ase Ġafter Ġthe Ġtarget , Ġsame Ġspeed , Ġdifferent Ġdirection Ċ Ġ* Ġ@ author Ġice 1 0 0 0 Ċ Ġ* Ġ@ since Ġv 1 . 7 . 3 Ċ Ġ* Ġ@ param Ġself Ġthe Ġch asing Ġobject Ċ Ġ* Ġ@ param Ġtarget Obj Ġthe Ġch ased Ġtarget Ċ Ġ* Ġ@ param Ġspeed Ġpixels Ġper Ġsecond Ċ Ġ*/ Ċ class ĠCh asing Move ( self : ĠAbstract Object , Ġvar Ġtarget Obj : ĠAbstract Object , Ġvar Ġspeed : ĠDouble ) Ġ: ĠSelf Center ed Move Anim ( self ) Ġ{ Ċ ĉ override Ġfun Ġ` do `( obj : ĠF Object ) Ġ{ Ċĉ ĉ val Ġa Ġ= Ġtarget Obj . x Ġ- Ġself . x Ċĉ ĉ val Ġb Ġ= Ġtarget Obj . y Ġ- Ġself . y Ċĉ ĉ val Ġc Ġ= ĠMath . sqrt ( a Ġ* Ġa Ġ+ Ġb Ġ* Ġb ) Ċĉ ĉ @ Suppress (" Local Variable Name ") Ċĉ ĉ val Ġdelta Time Speed Div C Ġ= Ġ( now Ġ- Ġlast Refresh ) Ġ* Ġspeed Ġ/ Ġc Ġ/ Ġ 1 e 3 Ċĉ ĉ last Refresh Ġ= Ġnow Ċĉ ĉ obj . move ( deltaTime Speed Div C Ġ* Ġa , Ġdelta Time Speed Div C Ġ* Ġb ) Ċ ĉ } Ċ } Ċ Ċ /** Ċ Ġ* ĠAppro aching Ġthe Ġtarget , Ġeach Ġsecond Ċ Ġ* Ċ Ġ* Ġ@ author Ġice 1 0 0 0 Ċ Ġ* Ġ@ since Ġv 1 . 7 . 3 Ċ Ġ* Ġ@ param Ġself Ġthe Ġappro aching Ġobject Ċ Ġ* Ġ@ param Ġtarget Obj Ġthe Ġappro ached Ġtarget Ċ Ġ* Ġ@ param Ġproportion Ġper Ġsecond Ċ Ġ*/ Ċ class ĠAppro aching Move ( self : ĠAbstract Object , Ġvar Ġtarget Obj : ĠAbstract Object , Ġvar Ġproportion : ĠDouble ) Ġ: ĠSelf Center ed Move Anim ( self ) Ġ{ Ċ ĉ override Ġfun Ġ` do `( obj : ĠF Object ) Ġ{ Ċĉ ĉ val Ġa Ġ= Ġtarget Obj . x Ġ- Ġself . x Ċĉ ĉ val Ġb Ġ= Ġtarget Obj . y Ġ- Ġself . y Ċĉ ĉ @ Suppress (" Local Variable Name ") Ċĉ ĉ val Ġdelta Time Pro portion Ġ= Ġ( now Ġ- Ġlast Refresh ) Ġ* Ġproportion Ġ/ Ġ 1 e 3 Ċĉ ĉ last Refresh Ġ= Ġnow Ċĉ ĉ obj . move ( deltaTime Pro portion Ġ* Ġa , Ġdelta Time Pro portion Ġ* Ġb ) Ċ ĉ } Ċ } ĊĊ