Цитата:
Сообщение от redefy
Обернуть первый спрайт вторым спрайтом... Первый спрайт сдвинуть на половину ширины и высоты...
|
Что значит обернуть? На рис. оранжевого цвета - это мувиклип. Зеленого цвета - это спрайт. Мувиклип я уже сдвинул как надо, он плотно прилегает к телу спрайта (просто неудачно скрин сделал).
Вот чтобы не писать много.
Сделал, как вы написали, но не помогло.
Код AS3:
// Для зеленого спрайта
private static const BLOCK_HALF:Number = 32; // Половина высоты и ширины прямоугольника размера 64 x 64
private static const RATIO:Number = 30 // pixels to meters
var blockSprite:Sprite = new Sprite();
blockSprite.graphics.beginFill(0x28990E);
blockSprite.graphics.drawRect(0, 0, 64, 64);
blockSprite.graphics.endFill();
blockSprite.x = - blockSprite.width / 2;
blockSprite.y = - blockSprite.height / 2;
parent.addChild(blockSprite);
var blockShapeDef:b2PolygonDef = new b2PolygonDef();
blockShapeDef.SetAsBox(BLOCK_HALF / RATIO, BLOCK_HALF / RATIO);
blockShapeDef.density = 0;
blockShapeDef.friction = 0;
blockShapeDef.restitution = 0.3;
var blockBodyDef:b2BodyDef = new b2BodyDef();
blockBodyDef.position.Set(320 / RATIO, 128 / RATIO);