Java 检测图像何时与特定颜色相交?
我11岁了,我用Java、HTML和CSS编程。我有一个游戏,它是一个Minecraft 2D平台 我有一些水在旁边,我想做的是当球员穿过水时,我想让它慢下来。这里是一个例子,如果有一种方法可以做到这一点,以防你仍然不理解我的目标Java 检测图像何时与特定颜色相交?,java,colors,game-engine,intersection,Java,Colors,Game Engine,Intersection,我11岁了,我用Java、HTML和CSS编程。我有一个游戏,它是一个Minecraft 2D平台 我有一些水在旁边,我想做的是当球员穿过水时,我想让它慢下来。这里是一个例子,如果有一种方法可以做到这一点,以防你仍然不理解我的目标 if (player.intersectsColor("0026FF")) playerSpeed = 2; else playerSpeed = 3; 我建议你不是根据颜色而是根据位置来代表水。这样,您可以检查玩家是否在代表水的“瓷砖”中,并相应地
if (player.intersectsColor("0026FF"))
playerSpeed = 2;
else
playerSpeed = 3;
我建议你不是根据颜色而是根据位置来代表水。这样,您可以检查玩家是否在代表水的“瓷砖”中,并相应地调整速度 这可以通过简单的x/y坐标比较来实现(根据“平铺”/“播放器”的大小进行调整) 如果你没有很好的网状瓷砖,但有曲线/多边形,你需要阅读几何体和如何计算(可能是曲线)线交点。精确的算法将取决于所使用的曲线 我不鼓励您在交叉点使用颜色本身的原因有两个:
如果你真的想用颜色来表示地形,你可以将玩家在游戏中的坐标转换成屏幕坐标,并查看屏幕上该坐标处的颜色像素(在玩家在场景中渲染之前),但这很混乱。Noah,很抱歉,这里的其他用户对你投了反对票,而不是提供建议或提出更明确的问题。你是在问Minecraft是否有intersectsColor这样的方法,还是在问如果该方法确实存在,这是否是一种正确的方法?@BrianReindel我添加的代码就是示例,如果
Image
类中存在这样的方法。我要问的是,当图像
播放器
与某种颜色相交时,如何执行代码,在本例中,蓝色与颜色代码为0026FF。我想要的是当玩家进入水中(0026FF),然后将玩家的速度整数减少1。我之所以说playerSpeed=2
而不是playerSpeed--
是因为这将在一个循环中运行,它将做的是在水中每毫秒减去一个。你可能会发现,在Minecraft的某个社区,甚至在其中一个社区,你会得到更大的响应。它似乎比Java更适合Minecraft。好吧,我把水放在背景图像上,它是弯曲的,这就是我需要帮助的地方