スプライト クラスから拡張された createBrick というサブクラス内に「brick」という関数があり、「Brick」というランタイム共有用にエクスポートされたライブラリで作成されたムービー クリップもあります。何らかの奇妙な理由で、コードを実行すると、コードをデバッグするとブロックが作成されますが、ブロックがステージに表示されません。
ここに関数があります
public class createBrick extends Sprite {
public function createBrick(_main:Main) {
main = _main;
var go:Brick = new Brick();
addChild(go);
trace(go.x);
brick(475, 235, 30, 30);
}
private function brick(pX: int, pY: int, w: Number, h: Number): void {
var bric:Brick = new Brick();
addChild(bric);
bric.x = pX;
bric.y = pY;
bric.width = w;
bric.height = h;
var polygonShape: b2PolygonShape = new b2PolygonShape();
var polygonFixture: b2FixtureDef = new b2FixtureDef();
polygonShape.SetAsBox(w / 2 / worldScale, h / 2 / worldScale);
polygonFixture.shape = polygonShape;
polygonFixture.density = .2;
polygonFixture.restitution = 0.9;
polygonFixture.friction = 0.9;
var brickbodyDef: b2BodyDef = new b2BodyDef();
brickbodyDef.type=b2Body.b2_dynamicBody;
brickbodyDef.userData = bric;
brickbodyDef.position.Set(bric.x / worldScale, bric.y / worldScale);
var theBrick: b2Body = world.CreateBody(brickbodyDef);
theBrick.CreateFixture(polygonFixture);
}
}
メイン ドキュメント クラスにすべてのコードがあり、ステージ上にブリックが表示されている場合、同じ関数が完全に機能します。私はそれを適切に参照していませんか?