首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >npc XNA的应用方向

npc XNA的应用方向
EN

Stack Overflow用户
提问于 2013-12-11 09:40:40
回答 1查看 115关注 0票数 0

我的游戏中有NPC,它遵循一个脚本,它们在游戏中随机移动。尽管如此,我还是希望他们面对他们所走的方向。

代码语言:javascript
复制
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有关,我已经尝试过更改计算,字符的旋转看起来确实不同,只是不按当前的方向旋转。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-11 14:30:27

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

代码语言:javascript
复制
Matrix.CreateWorld(positionVector, DirectionVector, UpVector);

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

就你而言:

代码语言:javascript
复制
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);
     }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20515572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档