我目前正在开发一款游戏,如果敌人不在黑色区域内,则需要填充黑色区域。因为,它是一个游戏,因此,它需要快速。目前我正在做以下事情:
- 开始在黑色区域填充洪水
- 在检查洪水填充算法中的像素时,还要检查敌人
- 如果找不到敌人,请将此位图设为主画布的位图
醇>
到目前为止,这是我能找到的最好,最快的方法。但是,游戏仍会冻结一秒钟。 但是,如果我使用Regions和Paths然后使用canvas.drawPath,我想它会快得多。也可以使用region.contains(x,y)检查敌人。 您能告诉我们如何获得具有该特定颜色的区域/区域阵列吗?
提前致谢。
PS:我不知道这是否有必要,但我已经使用了paint.setXfermode (new AvoidXfermode(COLOR1, 0, Mode.TARGET));并且非常快速地用所需颜色替换所有COLOR1。这使我更加确信我的上述问题有解决方案。
答案 0 :(得分:0)
有多少敌人?它们如何存储?你为什么不解决相反的问题。拿一块黑色帆布,然后给敌人的绿色区域上色?如果大部分画布最终变为黑色,则速度会明显加快。