うーん言葉で説明するのは難しいです・・・
DIRECTXを使用されているとのことですが、DXライブラリを使用したプログラムで大丈夫でしたら
こちらのページの「落ちものゲーム基本」で落ち物ゲームのサンプルプログラムがありますので、
よろしければご覧ください
「落ちものゲーム基本」
http://homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N10
( ブロックの移動やあたり判定は関数 MoveActiveBlock や CheckHitActiveBlock で行っています )