这是我的jsfiddle:http://jsfiddle.net/mrLt1swj/1/
我所做的基本上是创建一个空 Sprite 并附加弧线,因为它是这样的子元素:
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);
在这种情况下,我可以使用弧上的物理原理,但问题在这里
是圆弧基本上是一个多边形形状,其次 Sprite 的位置在0,0
并且圆弧有不同的坐标,所以如果球击中圆弧碰撞将不起作用,相反它会起作用如果它击中了空 Sprite
- 如何设置圆弧的碰撞边界,以便球和圆弧之间的碰撞起作用
- 是否有任何可能的解决方案可以将物理设置为弧而不使用 Sprite
最佳答案
对于多边形(非矩形)碰撞,您必须使用 P2 物理而不是 Arcade 物理。
或者跳过适当的物理过程并自己计算碰撞:根据弧半径和 Angular 检查球的位置。
关于javascript - Phaser中图形和 Sprite 之间的碰撞检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32137109/