private void SimpleMotion(){    //uniform motion along X and accelereted motion along Y
        m_acceleration.setX((m_draft.X() /*+ m_uplifting_force.X()*/)/m_weight);
        m_acceleration.setY((m_draft.Y() /*+ m_uplifting_force.Y() */+ m_gravity.Y())/m_weight);
        if(m_acceleration.Length() > Physics.MAX_ACCELERATION){
            m_acceleration = m_acceleration.getUnitVector();
            m_acceleration.setX(m_acceleration.X()*Physics.MAX_ACCELERATION);
            m_acceleration.setY(m_acceleration.Y()*Physics.MAX_ACCELERATION);
        }
        
        m_velocity.setX(m_velocity.X() + m_acceleration.X());
        m_velocity.setY(m_velocity.Y() + m_acceleration.Y());
        if(m_velocity.Length() > Physics.MAX_SPEED){
            m_velocity = m_velocity.getUnitVector();
            m_velocity.setX(m_velocity.X()*Physics.MAX_SPEED);
            m_velocity.setY(m_velocity.Y()*Physics.MAX_SPEED);
        }
        
        m_coordinates.setX(m_coordinates.getX() + Math.round(m_velocity.X()));
        m_coordinates.setY(m_coordinates.getY() + Math.round(m_velocity.Y()));
        m_coordinates.setX((m_coordinates.getX() >= 0 )?(m_coordinates.getX()):(Physics.MAX_X + m_coordinates.getX()));
        m_coordinates.setX((m_coordinates.getX() < Physics.MAX_X)?(m_coordinates.getX()):(m_coordinates.getX() - Physics.MAX_X));
        m_coordinates.setY((m_coordinates.getY() >= 0 )?(m_coordinates.getY()):(Physics.MAX_Y + m_coordinates.getY()));
        m_coordinates.setY((m_coordinates.getY() < Physics.MAX_Y)?(m_coordinates.getY()):(m_coordinates.getY() - Physics.MAX_Y));
        //m_uplifting_force.setY(m_velocity.X()*m_velocity.X()/m_velocity.Length());
    }