我是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();
}
答案 0 :(得分:2)
检查您的viewMatrix属性。访问者正在引用自己。
答案 1 :(得分:1)
尝试使用auto-implemented property访问者。
public Matrix ViewMatrix {get; set;}