Установка точки привязки спрайта к середине - PullRequest
1 голос
/ 29 марта 2012

Я генерирую спрайты программно, как это:

this.food = new Sprite();
this.food.graphics.beginFill(0xFFFFFF);
this.food.graphics.drawRect(0, 0, 10, 10);
this.food.filters = [new GlowFilter(0xFF6699, .80, 5, 5, 2, 2, false, false)];
this.food.graphics.endFill();
this.food.x = this.x;
this.food.y = this.y;
this.stage.addChild(this.food);

И позже я делаю это:

public function update():void
{
    // Spin the food
    this.food.rotation += 1;
}

Я хочу, чтобы пищевой спрайт медленно вращался вокруг своего центра, а не его значения x и y, которые являются верхним левым углом спрайта.

Как сделать привязку центром спрайта?

Ответы [ 2 ]

1 голос
/ 29 марта 2012

Используйте первые два параметра drawRect() для смещения графики:

drawRect(-5, -5, 10, 10);

Параметры

x:Number - число, указывающее горизонтальное положение относительно точки регистрации родительского экранного объекта (в пикселях).
y:Number - число, указывающее вертикальное положение относительно точки регистрации родительского объектаэкранный объект (в пикселях).width:Number - Ширина прямоугольника (в пикселях).
height:Number - Высота прямоугольника (в пикселях).

Идея состоит в том, чтобы вычесть половину из width и height от x и y к центру.

0 голосов
/ 03 апреля 2012

Я нашел другой подход с использованием объекта Matrix и метода transform. Может быть, это все еще полезно.

http://jamesvango.co.uk/blog/?p=136

...