33~37行目は、自分と相手が近づいているのか、遠ざかっているのかの判定と、近づいているときの反発処理です。自分と相手が近づいているか遠ざかっているかは、両者の回転後の速度のX成分を比較して判断します。反発処理は基本、両者の速度のX成分を交換するだけです。両者が遠ざかっているなら、何もせず放っておきます。 38~41行目は、速度成分を逆方向に回転、つまり元に戻す処理です。 回転変換についての詳細は「回転 座標変換」でインターネット検索してみましょう。