private void moveTo ( double extrp , int dx , int dy ) { final Force force = getMovementForce ( transformable . getX ( ) , transformable . getY ( ) , dx , dy ) ; final double sx = force . getDirectionHorizontal ( ) ; final double sy = force . getDirectionVertical ( ) ; // Move object moveX = sx ; moveY = sy ; transformable . moveLocation ( extrp , force ) ; moving = true ; // Object arrived, next step final boolean arrivedX = checkArrivedX ( extrp , sx , dx ) ; final boolean arrivedY = checkArrivedY ( extrp , sy , dy ) ; if ( arrivedX && arrivedY ) { // When object arrived on next step, we place it on step location, in order to avoid bug // (to be sure object location is correct) setLocation ( path . getX ( currentStep ) , path . getY ( currentStep ) ) ; // Go to next step final int next = currentStep + 1 ; if ( currentStep < getMaxStep ( ) - 1 ) { updateObjectId ( currentStep , next ) ; } if ( ! pathStoppedRequested && ! skip ) { currentStep = next ; } // Check if a new path has been assigned (this allow the object to change its path before finishing it) if ( currentStep > 0 && ! skip ) { checkPathfinderChanges ( ) ; } } }
Move to destination .