如何在android中基于颜色获取复杂区域?

时间:2012-07-09 15:39:28

标签: android image-processing graphics bitmap

我目前正在开发一款游戏,如果敌人不在黑色区域内,则需要填充黑色区域。因为,它是一个游戏,因此,它需要快速。目前我正在做以下事情:

  
      
  1. 开始在黑色区域填充洪水
  2.   
  3. 在检查洪水填充算法中的像素时,还要检查敌人
  4.   
  5. 如果找不到敌人,请将此位图设为主画布的位图
  6.   

black areas to be checked

到目前为止,这是我能找到的最好,最快的方法。但是,游戏仍会冻结一秒钟。 但是,如果我使用RegionsPaths然后使用canvas.drawPath,我想它会快得多。也可以使用region.contains(x,y)检查敌人。 您能告诉我们如何获得具有该特定颜色的区域/区域阵列吗?

提前致谢。

PS:我不知道这是否有必要,但我已经使用了paint.setXfermode (new AvoidXfermode(COLOR1, 0, Mode.TARGET));并且非常快速地用所需颜色替换所有COLOR1。这使我更加确信我的上述问题有解决方案。

1 个答案:

答案 0 :(得分:0)

有多少敌人?它们如何存储?你为什么不解决相反的问题。拿一块黑色帆布,然后给敌人的绿色区域上色?如果大部分画布最终变为黑色,则速度会明显加快。