0

在我们的游戏设计中,我们希望通过(希望)能够检查地图图像的背景层来实现碰撞检测。我们目前正在使用.png,但问题是透明度通道(alpha)对于顶层(决定透明度)是有用的信息,我们不能将此层用作位掩码而不使图像透明。由于我们的游戏是基于图块的 RPG,因此检查将很简单(迭代每个块大小的像素,如果 alpha=1,则该块是地图实体,不能通过或踩到)。

替代方案(我们能想到的)需要太多设置。例如,拥有第二张图像没有出错的余地,因为它们必须完全匹配。此外,将图像中的单个块指定为可步行需要我们将此信息存储在图像中或手动设置,这太暴力了。透明层的想法(如果您能提出一种使其工作的方法)是理想的,因为您可以在 Photoshop 中对图像进行阴影处理并创建透明图像,几乎不需要任何工作。

TLDR;你可以在java中使用png的alpha通道作为位掩码的一种形式而不渲染透明度吗?任何可以存储多个图层的swing轻松处理的图像格式?

4

1 回答 1

0

您正在对单个值进行操作,那么为什么不在其他通道的 1 个中保留 1 个数字。保留 1600 万种颜色,但保留 b=0 作为碰撞颜色。人们将无法分辨 0,0,0 和 0,0,1 之间的区别,因此永远不要使用纯黑色,无需奇怪的透明编码即可解决问题。

于 2013-03-16T12:44:05.990 回答