1

嘿,我正在尝试制作一个基本的曲棍球风格游戏。我有关于球场、球员、对手和球的基本物理知识。

我正在努力弄清楚如何让球进入球门,同时防止球员和对手进入球门。

基本上对手跟随球,而球员由用户输入控制。所以我需要两个限制。

我需要创建一个只有球才能通过的形状......这甚至可能吗?如果球越过球门线,也许我可以让对手睡觉?

我会以正确的方式去做吗?

Player1只能在红框内走动 Player2只能在绿框内走动 球可以在外蓝框内走动

比赛场地布置

4

3 回答 3

2

如果您使用的是 Box2D,您可能想要查看Sensors

取自Box2D 手册

有时游戏逻辑需要知道两个固定装置何时重叠但不应该有碰撞响应。这是通过使用传感器来完成的。传感器是检测碰撞但不产生响应的夹具。

您可以将任何灯具标记为传感器。传感器可以是静态的或动态的。请记住,每个主体可能有多个固定装置,并且可以混合使用传感器和实体固定装置。

传感器不产生接触点。有两种方法可以获取传感器的状态:

  1. b2Contact::IsTouching
  2. b2ContactListener::BeginContact 和 EndContact
于 2011-03-23T21:32:00.050 回答
1

为什么不使用简单的碰撞检测?

如果在您的曲棍球场上移动的对象是球员类型并且他的位置/命中框与球门相撞,您将他的位置更改回线,因此他可能无法与球门相交。

如果对象的类型不是玩家,您只需让对象通过

于 2011-03-23T12:07:48.230 回答
0

好吧,你不允许玩家离开比赛场地向左或向右是吗?所以你只需要为球员的目标区域做同样的逻辑。

于 2011-03-23T12:08:39.833 回答