1

我是 Phaser 的新手,正在尝试学习 Phaser 3。我需要一个项目的彻底约束。

有使用 box2d 和 p2physics 的 Phaser 2 的示例,但它们在 Phaser 3 中不起作用。

我尝试在文档中查看它,但我认为它还不完整。

谁能告诉我如何在相位器 3 中创建旋转约束(或销接头)。

4

1 回答 1

0

签出此链接上的示例并点击运行代码按钮:

var config = {
    type: Phaser.AUTO,
    width: 800,
    height: 600,
    backgroundColor: '#1b1464',
    parent: 'phaser-example',
    physics: {
        default: 'matter'
    },
    scene: {
        preload: preload,
        create: create
    }
};

var game = new Phaser.Game(config);

function preload ()
{
    this.load.image('ball', 'assets/sprites/shinyball.png');
}

function create ()
{
    this.matter.world.setBounds();

    //  Our two bodies which will be connected by a constraint (aka a Joint or a Spring)

    var ballA = this.matter.add.image(420, 100, 'ball', null, { shape: 'circle', friction: 0.005, restitution: 0.6 });
    var ballB = this.matter.add.image(400, 200, 'ball', null, { shape: 'circle', friction: 0.005, restitution: 0.6 });

    //  You can create a constraint between the two bodies using a Factory function.
    //  The value 100 is the resting length and 0.2 is the stiffness of the constraint.

    this.matter.add.constraint(ballA, ballB, 100, 0.2);

    //  To help those of you more used to the Box2D syntax you can use
    //  add.joint or add.spring instead (with the exact same parameters)

    // this.matter.add.spring(ballA, ballB, 100, 0.2);
    // this.matter.add.joint(ballA, ballB, 100, 0.2);

    //  Or you can create a native Matter constraint:

    // var constraint = Phaser.Physics.Matter.Matter.Constraint.create({
    //     bodyA: ballA.body,
    //     bodyB: ballB.body,
    //     length: 100,
    //     stiffness: 0.2
    // });

    //  Which you then have to add to the world yourself:

    // this.matter.world.add(constraint);

    this.matter.add.mouseSpring();
}
于 2019-11-12T07:42:19.347 回答