我正在编写一个游戏,它显示 56 个六边形棋子以棋盘的形状填充屏幕。我目前正在使用单例渲染类绘制每一块,当调用它来绘制一块时,会根据传入的坐标从 6 个点创建一条路径。这条路径填充了纯色,然后是一个 59x59 png 和一个 alpha 到白色渐变覆盖在图纸上,使作品看起来有光泽。请注意,我目前正在 Core Graphics 中执行此操作。
我的第一个想法是每次绘制时创建一条路径成本很高,而且似乎我可以以某种方式执行一次然后重用它,但我不确定最好的方法。当我查看 Shark 的瓶颈时,看起来 png 的绘制是该过程中最费力的部分。我试过只渲染 png 叠加层或只渲染没有叠加层的路径,两者都给了我一些帧增益,尽管删除 png 叠加层会产生最多的帧。
我目前的想法是,在启动时,我应该渲染 6 条路径(我拥有的每个颜色块 1 条)并用 png 覆盖它们,然后存储这些块的图像,然后每次我需要它们时重新绘制这些块。是否有一种有效的机制来存储你曾经绘制过的东西并重新绘制它?听起来我会再次经常遇到整个绘图 png 的事情,但也许有一种不那么费力的方法可以做类似的事情......
任何建议都非常感谢。谢谢!