>>122
122さんは、ある程度自分でお調べになったようですから、
自分の場合を、控えめに答えることにします。

直線運動は 何か によって 何か が変化していますよね。
その しくみ() は、既にできていらっしゃる。
これが、素直に考える方法を用いて実現されていた場合、例えば、
ほぼ sin関数,cos関数 の定義そのままに、sin関数,cos関数 を使うことで、
円運動(回転?)を実現できるかもしれません。
(実現できたなら、一度、sin関数 cos関数 を作ってみるのもいいかもしれません)
(また、しくみに名前をつけられる言語をお使いでしたら、どんな名前をつけますか)

それに対して、滑らかな動きは直線運動ではありませんから、
直線運動に使った何か によって
直線運動に使った何か が変化するごとに、
何か が変化します。

>>128
128さんはマップチップを、どのようなものとして定義されましたか?
あるいは、そのゲームにおいて使われるマップチップサイズは
何と何の何通りが存在しますか?
もし紙等に書き出していなければ、色々書いてみるのもいいかもしれません。

(※お役に立てなかったらごめんなさい)