按键精灵是如何控制鼠标让游戏中的人物转身的?

尺寸x0,y0//箭头运动的中心轴

弧距= 1//表示箭头每次移动产生的弧距。

半径= 100

π = 4 * atn(1)

n = 0

而n & ltπ * 2

x = x0+半径* sin(n)

y = y0-半径* cos(n)

IfColor x,y," FFFFFF ",0 Then(小地图上的字符标记,假设是白色小箭头)

MessageBox x & ampy

如果…就会结束

n = n+圆弧间距/半径

首先确定你的角色的视角。这是一种思维方式。我写不出来。

在任何时候,字符坐标已知,目的坐标也已知,所以可以用GetAngle函数知道字符到目的地的方向(与X轴的夹角)。这就是:期望角度= getangle (currentx,currenty,destx,destiny)。

另外,如果角色一直往前走了一定的距离,就可以知道角色开始移动前和移动后的两个坐标,这样就可以计算出角色移动的方向,也就是间接知道了角色的方向。这是:currentangle = getangle (lastx,lasty,currentx,currenty)

知道了这两个方向,就可以计算出角色需要转多少,正好对着目标点。从目标方向减去角色朝向,就是角度。代码:dangle =所需角度-当前角度

但是,角度本身是需要调节的。例如,目标为359度,角色面向0度,减少的夹角为359度。那你不会真的让角色逆时针转(左转)359度吧?顺时针转(右转)1度就够了,就是把这个夹角-180度改成+180度,符号表示左转还是右转。代码是:

如果悬挂& gt那么圆周率

dAngle=dAngle-pi*2

如果…就会结束

如果悬挂& lt-那么圆周率呢

dAngle=dAngle+pi*2

如果…就会结束