|
一个类似RTS游戏的角色移动的问题,我用XNA写的小游戏,但是在角色移动上面我做的很奇怪 [em7],角色移动是我点击角色然后点击其他地点后角色自动开始移动,我用下面的函数在每帧移动一点。。。但是奇怪的是除了点击右下角以外其他方向角色移动都是不正确的[em21]。。求指教
void moving()
{
double TotalDistance = Math.Abs(Vector2.Distance(new Vector2(startX, startY), new Vector2(targetX, targetY)));//先拿最长距离
double distance = this.Owner.Speed * ElapsedGameTime.TotalMilliseconds / 1000;//这帧要移动的距离
double angle = Math.Acos(Math.Abs(targetX - startX) / TotalDistance);//移动的角度
double distanceX = distance * Math.Cos(angle);//X轴上的移动距离
double distanceY = distance * Math.Sin(angle);//Y轴上的移动距离
//然后移动本角色。
this.MoveTo(new Vector2(this.Owner.Position.X + float.Parse(distanceX.ToString()), this.Owner.Position.Y + float.Parse(distanceY.ToString())));
}
还有一个问题就是,就是在移动视角的时候,同样需要移动地图和地图上的单位让它们待在正确的位置上,该怎么做呢?
因为如果我移动视角的时候同样移动单位而那个单位又正在移动的话不是会打乱单位的移动么?
解决办法是不是只需要把角色移动的向量和视角移动的向量相加就可以了??
[em16] |
|