ブロックや壁が画面に対して水平、垂直のもののみ(つまり、ブロックの形状がすべて矩形)であるならば実はすごく簡単です。 ボールのX方向の移動量、Y方向の移動量は縦方向の壁やブロックの左右面に当たった場合はX方向の移動量の正負が反転して横方向の壁やブロックの上下面に当たった場合にはY方向の移動量が反転します。 具体的に言えば、ボールの座標がBX、BY、移動量がDX、DYとした時にボールの移動はBX=BX+DX:BY=BY+DYとなりますが、ブロックの左右面に当たった場合にはDX=-DXとなり、上下面に当たった場合にはDY=-DYになるということです。 とはいえ、実際に作るとなると難しいのは当たり判定の方ではないかと思います。