检测图像何时与某种颜色相交?

时间:2013-10-26 00:25:59

标签: java colors game-engine intersection

我今年11岁,用Java,HTML和CSS编程。我所拥有的是一款游戏,它是一款Minecraft 2D平台游戏。

嗯,我有一些水,我想要做的是当玩家与水相交时,我希望它减速。这是一个例子,如果有一种方法可以做到这一点,以防你仍然不了解我的目标。

if (player.intersectsColor("0026FF"))
    playerSpeed = 2;
else
    playerSpeed = 3;

1 个答案:

答案 0 :(得分:2)

我建议你用水来代表水,而不是它的位置。这样你就可以检查玩家是否在代表水的“瓦片”中,并相应地调整速度。

这可以通过简单比较x / y坐标(根据“tile”/“player”的大小进行调整)

如果你没有漂亮的网状拼贴,但是曲线/多边形,则需要阅读几何以及如何计算(可能是弯曲的)直线交点。确切的算法取决于使用的曲线。

我不鼓励你将颜色本身用于交叉点的原因有两个:

  1. 单色上的“相交”限制了以后动态着色地形/物体的能力
  2. 您不能拥有两种不同的具有相同颜色的terrain.object类型
  3. 拥有地形/物体的颜色(例如棕色)并不能告诉你玩家遇到哪个蓝色地形/物体(例如它是第一个还是第二个胸部?)
  4. 如果确实想要用颜色表示地形,您可以将玩家在游戏中的坐标转换为屏幕坐标,并在屏幕上看到您在该坐标处的颜色像素(在播放器之前)在现场呈现,但这很混乱。