首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相机问题

相机问题
EN

Stack Overflow用户
提问于 2014-03-17 14:11:31
回答 1查看 51关注 0票数 0

我想让屏幕跟随播放器,看到许多人使用矩阵让相机做他们想做的,我有点卡住了。我有一个名为Game1.cs的主要类,一个玩家类是进行运动的,大多数人在他们的相机功能中都有运动系统。我想要的是相机跟踪球员,没有缩放或旋转(目前)。

我有摄像机课的开始:

代码语言:javascript
复制
class Camera
{
    public Matrix Transform;
    Vector2 Position;
    Viewport viewPort;

    public Camera(Viewport viewport)
    {
        viewPort = viewport;
        Position = Vector2.Zero;
    }

    public void Update(GameTime gameTime)
    {
        Transform = Matrix.CreateTranslation(Position.X, Position.Y, 0);
    }
}

Game1.cs:

代码语言:javascript
复制
protected override void LoadContent()
{
     camera = new Camera(GraphicsDivice.Viewport);
}

Protected override void Draw(GameTime gameTime)
{
     spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend, null, null, null, null, camera.Transform);

     //Stuff Here

     spriteBatch.End();
     base.Draw(gameTime);
}

,我错过了什么?如何解决这个问题?

我应该如何添加我的Player.cs类?

编辑: 10:36 3/17/2014

我让它跟随播放器,将矩阵转换更改为一个方法,并将Transform()添加到SpriteBatch.Begin()中。我还添加了一个public Player thing(Player player),使位置与球员的位置相等。但是玩家被困在屏幕的左边。

如何使播放器处于屏幕中央?

代码现在如下所示:

代码语言:javascript
复制
class Camera
{
    Player player;

    public Vector2 Position;
    Viewport viewPort;

    public Matrix Transform()
    {
        var translationMatrix = Matrix.CreateTranslation(new Vector3(-Position.X, 0, 0));

        return translationMatrix;
    }

    public Player thing(Player player)
    {
        Position = player.Position;

        return player;
    }

    public Camera(Viewport viewport)
    {
        viewPort = viewport;
    }

    public void Update(GameTime gameTime)
    {
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-17 21:44:33

播放机被卡在屏幕的左侧,因为您将播放器的位置设置为与摄像机的位置相同。您需要设置偏移量:

代码语言:javascript
复制
Vector2 offset = new Vector2(GraphicsDeviceManager.PreferredBackBufferWidth / 2, 0); //or whatever you like; new Vector2(100, 0) for an instance
Position = player.Position + offset; // plus or minus don't know just test
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22456589

复制
相关文章

相似问题

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