javascript - Phaser中图形和 Sprite 之间的碰撞检测

标签 javascript phaser-framework

这是我的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

  1. 如何设置圆弧的碰撞边界,以便球和圆弧之间的碰撞起作用
  2. 是否有任何可能的解决方案可以将物理设置为弧而不使用 Sprite

最佳答案

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

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

关于javascript - Phaser中图形和 Sprite 之间的碰撞检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32137109/

相关文章:

javascript - webpack 需要目录中的每个文件

javascript - 如何在回调中访问正确的“this”?

javascript - Phaser 可拖动分组世界地图

javascript - Phaser 框架,this 与 var

javascript - 有3种方法 "this.add.rectangle()"、 "new Phaser.GameObjects.Rectangle()"和 "fillRectShape()",我什么时候应该使用哪个?

javascript - Vue.js 自定义指令可以作为单个文件实现吗?

Javascript 函数停止被识别

node.js - Socket IO 游戏权威服务器中的冲突

javascript - Phaser.js 上的性能

javascript - 页面加载时的随机 iframe