我正在尝试使用精灵表加载系统制作游戏引擎。最初它是基于单个图像,但我遇到了巨大的内存问题,最终导致我使用精灵表系统。
在更改之前,引擎每秒渲染大约300帧以上,渲染时间约为2毫秒。现在渲染时间是16 - 20ms,fps大约是40。我已经尝试通过减少正在运行的计算量来优化我的代码,但它几乎没有改进它。
我可以做些什么来优化它,我的问题的来源似乎是使用srcRectangle来选择要使用DrawImage方法显示的精灵表区域。
绘制方法:
public virtual void Draw(Graphics g)
{
g.DrawImage(this.SpriteController.SpriteSheet,this.GetBoundingBox(), this.SpriteController.GetSpriteRectangle(),GraphicsUnit.Pixel);
}
GetBoundingBox方法:
public Rectangle GetBoundingBox()
{
return new Rectangle((int)this.X, (int)this.Y, this.SpriteController.Width, this.SpriteController.Height);
}
GetSpriteRectangle方法:
public RectangleF GetSpriteRectangle()
{
return new RectangleF(this.SpriteX, this.SpriteY, this.Width, this.Height);
}
这就是在渲染上运行的所有内容。