【发布时间】:2011-08-18 14:23:51
【问题描述】:
我计划在我的游戏中实现一组新图形:普通圆圈。绘制的精灵(在本例中为圆形)的数量从 2-3 开始,并且可以无限增加(可能)。不过,最大值可能在 60 左右。总共必须有 5 种类型的圆圈,每种都有不同的颜色和大小。现在看到我要到星期一才能实现它,所以我想我会在 stackoverflow 上问它。
有人知道哪种方法更快吗?
【问题讨论】:
标签: java android android-canvas draw geometry
我计划在我的游戏中实现一组新图形:普通圆圈。绘制的精灵(在本例中为圆形)的数量从 2-3 开始,并且可以无限增加(可能)。不过,最大值可能在 60 左右。总共必须有 5 种类型的圆圈,每种都有不同的颜色和大小。现在看到我要到星期一才能实现它,所以我想我会在 stackoverflow 上问它。
有人知道哪种方法更快吗?
【问题讨论】:
标签: java android android-canvas draw geometry
位图几乎总是比任何类型的绘图都快。通过正确的准备,绘制位图只是将内存转储到屏幕上。画圆涉及大量计算,包括抗锯齿。我在 JavaOne 2009 上发表了一篇论文,其中涵盖了这一点,但旧论文似乎已从网站上删除。
这确实取决于您的位图需要多大,但对于 10 像素以下的尺寸,位图精灵比绘制十字和线条等简单的图形操作要快得多。您还需要确保您的精灵在绘制时不需要任何类型的变换,并且它是与屏幕内存兼容的形式。
如果每个圆圈都是不同的颜色或粗细,或者更糟的是不同的大小,那就另当别论了。创建每个位图的成本将超过节省的成本。
您还应该记住优化的第一条规则:除非必须,否则不要这样做。
【讨论】: