游戏引擎精灵表性能问题 - DrawImage srcRectangle性能问题

时间:2014-03-19 18:43:15

标签: c# graphics game-engine

我正在尝试使用精灵表加载系统制作游戏引擎。最初它是基于单个图像,但我遇到了巨大的内存问题,最终导致我使用精灵表系统。

在更改之前,引擎每秒渲染大约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);
}

这就是在渲染上运行的所有内容。

0 个答案:

没有答案