澳门威利斯人_威利斯人娱乐「手机版」

来自 澳门威利斯人 2019-05-04 14:31 的文章
当前位置: 澳门威利斯人 > 澳门威利斯人 > 正文

canvas实现刮刮乐,混合和过度绘制

 

GPU每一帧可以绘制的像素有一个最大范围(正是所谓的fill rate),那几个意况下能够Infiniti制地绘制整个显示器的有着像素。不过只要由于重叠图层的关联必要不停地重绘同壹区域来讲,掉帧就恐怕发生了。

图片 1

GPU会放弃绘制那些完全被其他图层遮挡的像素,但是要计算出一个图层是否被遮挡也是相当复杂并且会消耗处理器资源。同样,合并不同图层的透明重叠像素(即混合)消耗的资源也是相当客观的。所以为了加速处理进程,不到必须时刻不要使用透明图层。任何情况下,你应该这样做:

canvas落成刮刮乐首要是要留意四个地点:第3个是将绘制的图样设置成背景图片(用到toDataUOdysseyL属性),那样在擦覆盖层的时候才不会丢掉绘制的图案,

  • 给视图的backgroundColor属性设置一个一定的,不透明的颜色

  • 设置opaque属性为YES

    如此做缩减了混合表现(因为编译器知道在图层之后的东西都不会对最后的像素颜色发生潜移默化)并且总计获得了增长速度,幸免了超负荷绘制行为因为Core Animation能够遗弃全部被完全遮盖住的图层,而不用每一种像素都去总计1回。

    假设用到了图像,尽量制止透明除非尤其须要。倘诺图像要展现在叁个永远的背景颜色或是固定的背景图在此之前,你没供给相对前景移动,你只供给预填充背景图片就能够制止运营时混色了。

    假使是文件的话,三个反革命背景的UILabel(也许其余颜色)会比透明背景要更加高效。
    最后,明智地利用shouldRasterize属性,能够将二个定点的图层种类折叠成单张图纸,那样就不需求每壹帧重新合成了,也就不会有因为子图层之间的插花和过于绘制的属性难点了。

其次个是设置在绘制插图的时候,设置透明透明(用到globalCompositeOperation属性)

本文由澳门威利斯人发布于澳门威利斯人,转载请注明出处:canvas实现刮刮乐,混合和过度绘制

关键词: 澳门威利斯人 动画专辑