すごく初歩だと思うが質問させてください。

グラディウスみたいなのを想像してもらえればわかりやすいと思うけど、
自機の移動がうまくいかない。
上下左右それぞれ押したときにその方向に一定の速度を与え、
離したときにその方向の速度を0にしているんだが、
たまに引っかかったように動かなくなることがある。
急に逆方向のボタン(上と下、右と左)を押すとなることが多い。
ちなみに座標を移動させる場合も同じように引っかかる。

どうやったらもっとスムーズに動くんだろう?