关于3D漫游鼠标键盘操作问题。(Irrlitch)

我正在使用Irrlicht(鬼火引擎)实现一个第一人称3D漫游的类,类似于CS视角的操作,
其中鼠标镜头旋转操作和键盘方向操作和CS一模一样,我现在遇到两个问题,键盘方面的问题是长按方向键视角要“顿”一下才能移动,就像打开记事本长按一个键输入文本第一个字要停顿一下才不停地输入后面的文字一样。
鼠标问题主要是实现镜头旋转,旋转的算法已经实现了,但是不能够“无限旋转”,就比如说在玩CS旋转镜头的时候可以将鼠标抬起来放下去继续旋转,然后我去研究鬼火引擎默认这个功能的实现方法,它的方式是与屏幕中心点作比较,当鼠标当前位置不在中心的时候就旋转,旋转过后又把鼠标指针set到中心,但是当我自己set到中心后,居然又进入了一次消息循环,所以镜头又被旋转回来了,相当于没有旋转。
请问前辈们这两个问题有什么解决思路没有?

镜头旋转操作和键盘方向操作和CS一模一样,我现在遇到两个问题,键盘方面的问题是长按方向键视角要“顿”一下才能移动,就像打开记事本长按一个键输入文本第一个字要停顿一下才不停地输入后面的文字一样。
鼠标问题主要是实现镜头旋转,旋转的算法已经实现了,但是不能够“无限旋转”,就比如说在玩CS旋转镜头的时候可以将鼠标抬起来放下去继续旋转,然后我去研究鬼火引擎默认这个功能的实现方法,它的方式是与屏幕中心点作比较,当鼠标当前位置不在中心的时候就旋转,旋转过后又把鼠标指针set到中心,但是当我自己set到中心后,居然又进入了一次消息循环,所以镜头又被旋转回来了,相当于没有旋转。
请问前辈们这两个问题有什么解决思路没有?