检测碰撞面

时间:2018-10-21 03:32:41

标签: java awt java-2d

我正在使用awt,而且效果很好。但是,我需要检测一个物体击中另一个物体的。对于矩形,这是一个简单的数学运算,但是对于另一个形状(比如说文本),则并非如此简单。

例如,我有一个用箭头键移动的“玩家”(矩形)和一个带有与文本匹配的碰撞盒的文本(与文本匹配的形状)。

如果玩家在字母之间移动,然后撞到字母的右侧,我希望将其区分为右,而不是左(就像矩形示例一样)。

我已经已经完成了碰撞检测,这不是问题。我想检测发生碰撞的 face (左,右,上,下)。

换句话说,如果某人制作了一个自定义形状,其中有两个矩形,但是它们之间的中心是空白,我想检测出发生了碰撞的是哪张脸。因此,如果我在右侧有左边的矩形,我想知道我在右边,而如果我在左侧有右边的矩形,我想知道我在左边。

这可能吗?如果是这样,是否可行?

1 个答案:

答案 0 :(得分:0)

我建议先使用一个击中框来检测玩家是否在字母周围的矩形区域内,如果是,则进行详细的碰撞检查。

您必须为每个字母创建一组特殊的形状对象以匹配其形状,其中每个形状都是简单的凸形,可以对其进行轻松检查。

相关问题