javascript - 从 pixi 到 p2 的 Sprite 边界多边形

标签 javascript html pixi.js

我正在使用

将 Sprite 导入 PIXI
var texture= PIXI.Texture.fromImage("img.png");
var sprite = new PIXI.Sprite(texture);
// I set the position
stage.addChild(sprite);

我想检测这个 Sprite 的碰撞,因为 PIXI 不支持碰撞检测。我正在使用 p2.js这需要一个用于碰撞检测的多边形边界框

如何从 pixi 获取多边形并将其传递给 p2 并检测碰撞?

任何示例或一些指示都会非常有帮助。

最佳答案

p2.js 和 Pixi.js 的坐标系不同,这使得解决方案有点复杂。 p2.js 中的“向上”方向是沿着正 Y 轴,而在 Pixi 中它是沿着负 Y 轴。为了解决这个问题,一种解决方案是对 Pixi 阶段应用负比例以将其上下颠倒:

stage.scale.y = -1;

您需要为每个 Sprite 添加一个 p2.Body。要将位置和旋转数据从 Pixi.js Sprite 传输到 p2.​​js 主体,请执行以下操作:

body.position[0] = sprite.position.x;
body.position[1] = sprite.position.y;
body.angle = sprite.rotation;

要跟踪重叠,您需要添加联系人监听器:

world.on('beginContact', function(evt){
    // evt.bodyA and evt.bodyB started overlapping!
});

world.on('endContact', function(evt){
    // evt.bodyA and evt.bodyB are not overlapping any more.
});

请看这个例子:http://jsfiddle.net/18shpxq8/2/

关于javascript - 从 pixi 到 p2 的 Sprite 边界多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29302247/

相关文章:

html - 使用 HTML 和 CSS 打印地址标签

javascript - 如何使用 PIXI.js Graphics 更改线条样式?

javascript - 如何在滚动条下降时显示 div,当滚动条上升时它应该消失

javascript - 正则表达式和 javascript,带点和零的数字

javascript - RegExp 限制除数字及其后的几个字母(如果它们持续存在)之外的所有符号

javascript - 等待 requestAnimationFrame 完成(通过回调)

javascript - 如何在Android设备中自动播放音频?

javascript - 传递数组数据

html - 如何让两个div并排 float ?

javascript - 将部分视频流传输至客户端