MyArray = split( MapYoffset, "," ) Xstep = MyArray(0) MyArray = Split( Offset( MapLeft, MapPos, MapXoffset, MapYoffset ), "," ) Xoffset = CInt( MyArray(0) ) Yoffset = CInt( MyArray(1) ) If Abs(Xoffset) <= Abs( Xstep * RecoupY ) Then //具体怎么补偿,需要看不同游戏自己分析一下 XOrigin = XOrigin - ( Abs( Xstep * RecoupY ) - Abs( Xoffset ) ) End If End If //右框补偿计算开始,这里是把X轴向左推 If MapRight <> "," and InStr( MapRight, "," ) Then MyArray = split( MapYoffset, "," ) Xstep = MyArray(0) MyArray = Split( Offset( MapRight, MapPos, MapXoffset, MapYoffset ), "," ) Xoffset = CInt( MyArray(0) ) Yoffset = CInt( MyArray(1) ) If Abs(Xoffset) <= Abs( Xstep * RecoupY ) Then //具体怎么补偿,需要看不同游戏自己分析一下 XOrigin = XOrigin + ( Abs( Xstep * RecoupY ) - Abs( Xoffset ) ) End If End If GetOriginPos = XOrigin & "," & YOrigin Rem EndOfFun End Function Function Offset( CurrentMapPos, NextMapPos, Xoffset, Yoffset ) //制作人员:xxchuchu //制作时间:2011.01.09 //功能说明:[英雄无敌在线]中,计算2个游戏[地图坐标]之间的屏幕距离 //参数说明: //Offset 返回值, 格式:X,Y 字符型,例如"-100,100" //CurrentMapPos 出发点, 格式:X,Y 字符型 //NextMapPos 到达点, 格式:X,Y 字符型 //Xoffset 游戏坐标X+1时屏幕坐标位移值,格式:X,Y 字符型 //Yoffset 游戏坐标Y+1时屏幕坐标位移值,格式:X,Y 字符型 Dim MyArray, Rx, Ry Dim intX, intY Dim x1, y1, x2, y2 MyArray = Split( CurrentMapPos, "," ) x1 = CInt( MyArray(0) ) y1 = CInt( MyArray(1) ) MyArray = Split( NextMapPos, "," ) x2 = CInt( MyArray(0) ) y2 = CInt( MyArray(1) ) //地图坐标X轴变化进行补偿开始 MyArray = Split( Xoffset, "," ) intX = CInt( MyArray(0) ) intY = CInt( MyArray(1) ) Rx = ( x2 - x1 ) * intX Ry = ( x2 - x1 ) * intY //地图坐标Y轴变化进行补偿开始 MyArray = Split( Yoffset, "," ) intX = CInt( MyArray(0) ) intY = CInt( MyArray(1) ) Rx = Rx + ( y2 - y1 ) * intX Ry = Ry + ( y2 - y1 ) * intY //对返回值进行赋值 Offset = Rx&","&Ry End Function