1

ムービー クリップを複数のうなじボディにアタッチしようとしていますが、次のエラーが発生します。

Line 118    1067: 
Implicit coercion of a value of type flash.display:MovieClip 
to an unrelated type nape.shape:Shape.

コードのブロックは次のとおりです。

for (var i:int = 0; i < 10; i++)
{
     var brick:Body= new Body(BodyType.DYNAMIC);
     var brickShape:Polygon = new Polygon(Polygon.box(10,30));
     brick.position.setxy(500, ((h ) - 32 * (i + 0.5)));
     var brickMovieClip:MovieClip = new Brick();
     brickMovieClip.width = 10;
     brickMovieClip.height = 30;
     addChild(brickMovieClip);
     brick.shapes.add(brickMovieClip);              
     brick.space = space;
    brick.shapes.at(0).material.elasticity = .1;            
}

これを修正する方法を知っている場合は、助けていただければ幸いです。

4

1 に答える 1

3

Body の shape プロパティは、MovieClip ではなく、nape.shape.Shape のリストです。Movieclip ではなく、brickShape を body の shape リストに追加する必要があります。

うなじ自体はグラフィックスとは何の関係もありません。物理オブジェクトの状態に基づいて、ボディに関連付けられたグラフィックスを正しい位置/回転に移動するのは、フレームごとにあなた次第です。

できることは、ムービークリップを本文の userData フィールドに保存して、必要に応じて後で簡単にアクセスできるようにすることです。

body.userData.graphic = brickMovieClip;

次に、各フレームで次のようにグラフィックを更新できます。

var mc:MovieClip = body.userData.graphic;
mc.x = body.position.x;
mc.y = body.position.y;
mc.rotation = body.rotation * 180 / Math.PI;
于 2013-03-26T23:56:07.670 に答える