用另一个图像替换图像中的颜色部分 - Java

时间:2018-01-16 04:44:04

标签: java game-engine

我正在尝试用纯Java创建2D Java武器渲染系统。但是,当我将角色渲染到角色时,我遇到了一个问题。我需要将武器渲染到"绿屏的位置"在角色形象上。 Beta character image。该图像的浅绿色部分需要替换为this。角色图像的绿色部分不是静态的,武器并不总是那种形状。我见过的最接近的问题是: Change color in image - (Greenscreen in JAVA)。但问题没有得到回答。

我还没有为此做过任何代码,但我正在考虑按像素阵列进行并获取该部分,但对于大图像来说它似乎并不高效。我最初计划在屏幕上获取玩家位置并抵消武器以渲染它需要的位置。问题是我真的不知道如何做到这一点。

1 个答案:

答案 0 :(得分:0)

摆脱绿色像素。然后:

  1. 如果您的角色是静态的,请执行以下操作: 您的示例武器图像与示例角色图像具有相同的大小。只要保持这种方式,每个帧都将角色和武器渲染到同一个位置。

  2. 如果武器需要位于不同位置的角色不同,请将武器偏移存储在某个文件中,例如:

      

    " character1"," character1.png",12,14

         

    " character2"," character2.png",10,9

    或其他任何有意义的事情。然后调整武器图像的大小,并在角色位置+文件中提供的偏移处绘制它。

  3. 如果您有武器位置发生变化的动画角色,请为每个帧存储偏移量。

  4. 如果你真的想要用另一个图像中的像素替换图像中的像素,并且使用纯Java而不是GPU加速,则必须使用简单的循环逐个像素地进行替换。