What's wrong with CollisionObject.isCollision? I have changed the return condition to:
tiX == gameObject.getX() && tiY == gameObject.getY()
, and tried the permutation of the +/- with the direction...