I see a method being overworked. "checkForCollision" in my book would return a boolean, and would not adjust xDirection and yDirection directly, but that is just a side issue I am certain.
Without...