-1

ここ数日間、CitrusEngine の Box2DPhysicsObjects を適切に拡張してカスタム オブジェクトを生成する方法を見つけようとして、頭を壁にぶつけていました。私の目標は、この動作を生成することです: 望ましい動作の例

これは、剣を振って攻撃するときに入力を使用して決定された方向にダッシュする私のヒーローをシミュレートするように設計されています。攻撃状態が発動するまで剣は「眠る」。

Box2D (特にジョイント) を適切に使用する方法について根本的な誤解があると思います。誰かが私を正しい方向に向けることができれば、私は永遠に感謝します. 現在のコードは壊れているため、実際には提供できません。

4

1 に答える 1

-1

上記のような実装は、パフォーマンスが非常に低く、ほぼすべての状況でトンネルを形成する可能性があります。したがって、解決策は、漏斗状のセンサーを追加し、このセンサーと私のヒーローの間にジョイントを追加することです。実装:

    override protected function createShape():void{

        var radius:Number = 4;
        var vertices:Vector.<b2Vec2> = new Vector.<b2Vec2>();
        vertices.push(new b2Vec2(0,0));

        for (var i:int = 0; i < 7; i++) {
            var angle:Number = i / 6.0 * .5* Math.PI;
            vertices.push(
                new b2Vec2( radius * Math.cos(angle), 
                            radius * Math.sin(angle) ));
        }

        var sword_shape:b2PolygonShape = new b2PolygonShape();
        sword_shape.SetAsVector(vertices,8);
        _shape = sword_shape;       
    }
于 2015-11-06T15:56:39.120 に答える