在我们的游戏设计中,我们希望通过(希望)能够检查地图图像的背景层来实现碰撞检测。我们目前正在使用.png,但问题是透明度通道(alpha)是顶层的有用信息(决定透明度),我们不能将此图层用作位掩码而不使图像透明。由于我们的游戏是基于区块的RPG,因此检查很简单(迭代每个块大小的像素,如果alpha = 1,那么这个区块是一个地图实体,不能走过或踩踏)。
备选方案(我们可以想到的)需要太多设置。例如,由于第二张图像必须完全匹配,因此不会留下任何错误。同时将图像中的各个块指定为walkable要求我们将此信息存储在图像中或手动设置此图像,这太过于暴力。透明层的想法(如果你可以建议一种方法使其工作)是理想的,因为你可以只在Photoshop中阴影图像并创建一个透明的图像,几乎不需要工作。
TLDR;您可以在java中使用png的alpha通道作为位掩码的形式而不渲染透明度吗?任何可以通过摆动轻松处理的图像格式可以存储多个图层吗?
答案 0 :(得分:0)
您正在使用单个值进行操作,因此为什么不在其他1个通道中保留1个数字。保留1600万种颜色,但保留b = 0作为碰撞颜色。人们将无法区分0,0,0和0,0,1之间的区别,所以从不使用纯黑色,没有奇怪的透明度编码就解决了问题。