游戏基准
如果是第一人称游戏,就会遇到这个问题,因为你在游戏中移动画面的时候,游戏是随着准中心的鼠标移动的,系统的鼠标一直在中心,而系统的鼠标在后台徘徊。比如一个枪战游戏,你要把画面向右移动半屏,后台的系统鼠标可能移动了两屏。
我的想法是先得到游戏窗口中心的坐标,将窗口大小XY除以2,你要移动到的坐标需要基于游戏内中心移动到那个坐标,而不是后台系统鼠标,所以用中心点,也就是游戏中心位置。如果没有中心,就是游戏移动屏幕时的参考位置,不一定是窗口的绝对中心。
游戏参考坐标减去目标坐标,得到其绝对值,等于游戏参考坐标与目标坐标之间的距离。如果用游戏后台系统鼠标移动这个距离,可以通过移动后台鼠标代码,移动到以游戏屏幕中心为基准的目标系统坐标。
但是如果游戏中心的移动速度和鼠标在后台系统中的移动速度不一样,这个距离值就要按比例相乘和相除。
比如基于游戏中心,游戏屏幕移动了100个像素,而实际背景鼠标移动了200个像素,那么你就需要想办法测出这个差值的倍数,多了就乘以距离值,少了就除以距离值。
上面说的换算方法需要补充一些判断。比如目标坐标大于参考坐标时,用目标坐标+距离;如果目标坐标小于参考坐标,则使用目标距离-距离,可以做出一些判断。