2017-01-12 19 views
0

私は水平に配置されたスプライトをいくつか持っています。使用されている物理エンジンはP2です。フェーザー移動スプライト

sprite.body.velocity.x = 150; 

各スプライトのその後I明確な形状と私のカスタムポリゴンロード:各スプライトの更新ループIの設定速度で私はポリゴンをロードした後

sprite.body.clearShapes(); 
sprite.body.loadPolygon('physicsData', 'sprite1'); 

を、スプライトは、(異なる速度で移動を開始します異なる画像)。なぜこれが起こったのですか?ポリゴンをロードしないと、すべて正常に動作しますが、スプライトは同じ速度で動きます。

答えて

0

ポリゴンとは関係なく、ポリゴンを作成する必要があると思います。しかし、私は何かを理解していない、あなたは彼らが両方別の速度で移動すると言う?彼らは接触しているかどうか?私はPhaserの例から単純なコードを実装しており、両方のポリゴンは論理的に接触することなく同じ速度で移動するからです。

var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update, render: render }); 

function preload() { 

    game.load.image('contra2', 'contra2.png'); 
    game.load.image('bunny', 'bunny.png'); 

    // Load our physics data exported from PhysicsEditor 
    game.load.physics('physicsData', 'sprites.json'); 

} 

var contra, bunny; 

function create() { 

    // Enable p2 physics 
    game.physics.startSystem(Phaser.Physics.P2JS); 

    contra = game.add.sprite(400, 300, 'contra2'); 
    bunny = game.add.sprite(100, 300, 'bunny'); 

    // Enable the physics body on this sprite and turn on the visual debugger 
    game.physics.p2.enable(contra, true); 
    game.physics.p2.enable(bunny, true); 

    // Clear the shapes and load the 'contra2' polygon from the physicsData JSON file in the cache 
    contra.body.clearShapes(); 
    contra.body.loadPolygon('physicsData', 'contra2'); 

    bunny.body.clearShapes(); 
    bunny.body.loadPolygon('physicsData', 'bunny'); 

    // Just starts it rotating 
    game.input.onDown.add(function() { start = true; }, this); 

    cursors = game.input.keyboard.createCursorKeys(); 

} 

function update() { 

    contra.body.setZeroVelocity(); 
    bunny.body.setZeroVelocity(); 

    if (cursors.left.isDown) 
    { 
     contra.body.moveLeft(200); 
     bunny.body.moveLeft(200); 
    } 
    else if (cursors.right.isDown) 
    { 
     contra.body.moveRight(200); 
     bunny.body.moveRight(200); 
    } 

    if (cursors.up.isDown) 
    { 
     contra.body.moveUp(200); 
     bunny.body.moveUp(200); 
    } 
    else if (cursors.down.isDown) 
    { 
     contra.body.moveDown(200); 
     bunny.body.moveDown(200); 
    } 

} 

Examples of P2 Polygons

Examples of P2 Movements

関連する問題