我今年11岁,用Java,HTML和CSS编程。我所拥有的是一款游戏,它是一款Minecraft 2D平台游戏。
嗯,我有一些水,我想要做的是当玩家与水相交时,我希望它减速。这是一个例子,如果有一种方法可以做到这一点,以防你仍然不了解我的目标。
if (player.intersectsColor("0026FF"))
playerSpeed = 2;
else
playerSpeed = 3;
答案 0 :(得分:2)
我建议你用水来代表水,而不是它的位置。这样你就可以检查玩家是否在代表水的“瓦片”中,并相应地调整速度。
这可以通过简单比较x / y坐标(根据“tile”/“player”的大小进行调整)
如果你没有漂亮的网状拼贴,但是曲线/多边形,则需要阅读几何以及如何计算(可能是弯曲的)直线交点。确切的算法取决于使用的曲线。
我不鼓励你将颜色本身用于交叉点的原因有两个:
如果确实想要用颜色表示地形,您可以将玩家在游戏中的坐标转换为屏幕坐标,并在屏幕上看到您在该坐标处的颜色像素(在播放器之前)在现场呈现,但这很混乱。