我无法确定实现绘制碰撞矩形代码的方法。这样做的最佳做法是什么?是否可以在每个drawcall上实例化一个新的矩形,具有正确的大小和位置,如下所示:
public void Draw(SpriteBatch spriteBatch)
{
Rectangle topLine = new Rectangle(CollisionRect.X, CollisionRect.Y, CollisionRect.Width, 1);
}
或者在我的字段中创建矩形更好,然后只需更改我的绘制方法中已存在的对象的值,即使代码会更“混乱”
public void Draw(SpriteBatch spriteBatch)
{
topline.Height = 1;
topline.Width = CollisionRect.Width;
topline.X = CollisionRect.X;
topline.Y = CollisionRect.Y;
}
答案 0 :(得分:0)
我会选择第一个选项。如果在topLine
方法的范围之后不再需要Draw
,理想情况下它应该作为“本地变量”。
只有在Draw
方法范围之后需要时才需要字段。
答案 1 :(得分:-1)
我会做第二次,因此GC的工作量减少了。 但如果你有时间,先用第一个然后第二个画几千。检查你赢得的表现是否值得为麻烦带来麻烦: - )