Показать сообщение отдельно
Старый 20.01.2012, 19:01
goldlider вне форума Посмотреть профиль Отправить личное сообщение для goldlider Найти все сообщения от goldlider
  № 10  
Ответить с цитированием
goldlider

Регистрация: Jun 2010
Сообщений: 120
Цитата:
Сообщение от 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);


Последний раз редактировалось goldlider; 20.01.2012 в 19:11.