在使用带重力的街机物理学时,如何与玩家一起移动精灵?

How can I move a sprite with a player while using arcade physics with gravity?

我想要一个拿着枪到处跑的玩家。看起来应该不会太难,但它会变得越来越复杂。我想到了使用容器,但是容器不允许重力,所以我不能使用它。然后我尝试使用一个物理小组,这很有效。但是,物理组存在一个大问题。我只能为组中的所有对象打开或关闭重力,这不是我想要的。显然我希望玩家有重力并四处跳跃,但枪不应该掉落到世界各地。玩家应该有重力,枪不应该。事实上,我很确定这把枪根本不需要物理。有没有办法为物理组中的一个物体禁用重力?或者有没有更好的方法来解决我的问题而不使用组?

我会:

  1. 基于Phaser Sprite/GameObject/Container创建自定义(取决于需要的属性).

  2. 在那个自定义对象中,我会在 constructor.

    中向场景添加所需的额外游戏对象
  3. 更新自定义对象本身中那些额外对象的位置,这样它们就不会need/have自己的物理体并与“基础”同步移动" 精灵.

事实证明,我其实只是个笨蛋,容器确实有物理实体。当我尝试时它没有工作,但那是因为我做错了其他事情,而不是物理 body。如果我使用容器将所有内容移动到一起,它现在可以工作了。