【问题标题】:How to create a 'fog of war' bitmap overlay in Android如何在 Android 中创建“战争迷雾”位图叠加
【发布时间】:2011-09-02 22:19:56
【问题描述】:

我有一个简单的 2D 游戏,其中有几个在屏幕上移动的角色。我想创建一个战争迷雾,只有每个角色周围的背景是可见的。

希望这很清楚(不要太模糊?!?!)。我的想法是创建一个黑色位图,然后以每个字符为中心绘制一个“透明”圆盘。然后我可以画背景,画人物,最后把这个叠加位图画在上面。

只是不确定如何在黑色位图上绘制“透明”磁盘。

有什么想法或替代设计吗?

【问题讨论】:

    标签: android bitmap overlay transparent fog


    【解决方案1】:

    Canvas.drawCircle()Paint 对象一起使用,该对象的alpha 设置为0。或者,您可以使用位图创建一个透明圆圈,然后像另一个位图一样绘制它。如果您想要通过淡入淡出进行强大的控制,则基于位图的圆圈会更有利。

    1. 创建一个位图来保存黑色覆盖
    2. 用黑色填充位图
    3. 在你想打孔的地方画一个透明的圆圈
    4. 在游戏画布上绘制叠加层
    5. 重复。

    【讨论】:

    • 对不起,我不太了解细节。在您的第一个建议中,是创建第二个画布吗?我的画布包含我的背景图像。然后我在上面画我的角色。然后我想用黑色位图覆盖整个地段,字符周围的区域被“打孔”。在您的第二个建议中,我如何让透明圆圈露出背景,而不仅仅是在黑色上打一个洞?
    • 干杯,但我仍然不确定我的油漆需要什么设置来绘制透明圆圈。我只有一个新的 Paint 并将 Alpha 设置为 0,但这只是画了一个透明的圆圈,而下面的部分则为黑色。
    • 试试Paint.setColor(Color.TRANSPARENT);
    • 干杯!现在可以了。我在这方面遇到了一些麻烦,但它现在可以工作了。谢谢你的帮助。我也必须设置一个 PorterDuff 模式(不管是什么!)
    【解决方案2】:

    实际上,由于战争迷雾需要持续存在,我不得不采用不透明的平铺解决方案,而不是直接位图,因为位图太大并且加载/保存时间太长激活。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-24
      • 2017-11-08
      相关资源
      最近更新 更多