按键精灵是如何控制鼠标让游戏中的人物转身的?
尺寸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
如果…就会结束