applying direction to npc XNA



我的游戏中有NPC,它们按照脚本在游戏中随机移动。不过,我希望他们能直面前进的方向。

for (int i = 0; i < GameConstants.NumDaleks; i++)
{
    if (dalekList[i].isActive)
    {
        Vector3 line = dalekList[i].direction;
        float rotationDal = (float)(Math.Atan2(dalekList[i].position.Y, dalekList[i].position.X) / (2 * Math.PI));
        Matrix dalekTransform = Matrix.CreateScale(GameConstants.DalekScalar) * Matrix.CreateRotationY(rotationDal) * Matrix.CreateTranslation(dalekList[i].position);
        DrawModel(mdlDalek, dalekTransform, mdDalekTransforms);
     }
}

我确信这一定与rotationDal有关,我尝试过更改计算,但字符的旋转方式似乎不同,只是不在当前方向

Xna有一个内置函数,您可能会在这里找到它。

Matrix.CreateWorld(positionVector, DirectionVector, UpVector);

这是医生:http://msdn.microsoft.com/en-us/library/bb975261(v=xnagamestudio.40).aspx

在您的情况下:

for (int i = 0; i < GameConstants.NumDaleks; i++)
{
    if (dalekList[i].isActive)
    {
        Matrix dalekTransform = Matrix.CreateScale(GameConstants.DalekScalar) * Matrix.CreateWorld(dalekList[i].position, dalekList[i].direction, Vector3.Up);
        DrawModel(mdlDalek, dalekTransform, mdDalekTransforms);
     }
}

最新更新