相位器中图形和子画面之间的碰撞检测

时间:2015-08-21 09:35:58

标签: javascript phaser-framework

这是我的jsfiddle:http://jsfiddle.net/mrLt1swj/1/

我所做的基本上就是创建一个空的精灵,然后像这样的孩子一样追加弧:

paddle = graphics2.arc(0, 0, 110, game.math.degToRad(0), game.math.degToRad(45), false);
paddleSprite = game.add.sprite(0, 0);
game.physics.enable(paddleSprite, Phaser.Physics.ARCADE);
paddleSprite.anchor.set(0.5);
// Add the graphics to the sprite as a child
paddleSprite.addChild(paddle);

在这种情况下我可以在弧上使用物理,但这里的问题 是弧基本上是一个多边形形状,其次是精灵的位置是0,0并且弧具有不同的坐标,因此如果球击中弧而碰撞将不起作用而不是如果它击中空的话它将起作用精灵

  1. 如何设置弧的碰撞界限,以便球和弧之间的碰撞工作
  2. 有没有任何可能的解决方案,我可以将物理设置为弧而不使用精灵

1 个答案:

答案 0 :(得分:1)

对于多边形(非矩形)碰撞,您必须使用P2物理而不是Arcade物理。

或者跳过适当的物理并自己计算碰撞:根据圆弧半径和角度检查球的位置。