为什么我的Matrix返回堆栈溢出?

时间:2017-02-04 18:19:15

标签: c#

我是C#的新手,我仍在学习它的所有小怪癖。我正在尝试设置一个基于左键单击和鼠标位置移动位置的相机,但是我的当前代码正在使用Stack溢出,看起来它应该可以从我读过的内容中看到,但我可以好像找不到问题,

任何帮助将不胜感激。 这是我的Camera类

class Camera
{
    Vector2 viewPosition = Vector2.Zero;

    public Matrix viewMatrix
    {
        get { return viewMatrix; }
        set { return; }
    }

    public void Update(InputHandler inputHandler)
    {
        Vector2 mousePosition = inputHandler.MousePosition;
        bool LeftClick = inputHandler.LeftButton;

        if (LeftClick == true)
        {
            viewPosition = mousePosition;
        }

        viewMatrix = Matrix.CreateTranslation(viewPosition.X,viewPosition.Y, 0);


    }
}

和我目前正在绘制的唯一对象的Draw方法。

        public void Draw(SpriteBatch spriteBatch, Texture2D sprite, Camera camera)
    {
        spriteBatch.Begin(SpriteSortMode.Deferred,BlendState.AlphaBlend,null,null,null,null,camera.viewMatrix);
        spriteBatch.Draw(sprite, spritePosition, null, Color.White,angle,origin,1.0f,SpriteEffects.None,0);
        spriteBatch.End();

    }

2 个答案:

答案 0 :(得分:2)

检查您的viewMatrix属性。访问者正在引用自己。

答案 1 :(得分:1)

尝试使用auto-implemented property访问者。

    public Matrix ViewMatrix {get; set;}