Переместите спрайт в Android с помощью Cocos

Контекст: я использую 2 спрайта 35x5, один поверх другого.

Проблема: в некоторых случаях я масштабирую верхний спрайт до 50 %. Он масштабируется, но его размеры остаются прежними, и он находится в центре нижнего спрайта. Представьте себе 2 бара. Верхняя полоса становится наполовину, а затем устанавливается в центре нижней полосы.

Что я хочу: я хочу, чтобы начальная позиция верхней панели была такой же, как и у нижней панели. так что верхняя полоса находится не более чем слева или справа.

Что я пробовал: в каком-то событии я вызвал приведенную ниже функцию, но ничего не происходит, кроме колебаний.

Bar.setPosition(SomeOtherSprite.getPosition().x, SomeOtherSprite.getPosition().y+SomeOtherSprite.getContentSize().height/2 + Bar.getContentSize().height/2+2);

Просто для информации, что я начал Cocos2d для Android за 2 дня до этого. Задаюсь вопросом, чтобы получить больше материала о Cocos2D в Android в Интернете, поскольку я не смог найти, кроме: Учебное пособие по Cocos для Android


person Farhan    schedule 04.10.2011    source источник
comment
да, точка привязки была решением, но я сделал это методом проб и ошибок, не совсем понял...   -  person Farhan    schedule 06.10.2011


Ответы (1)


Точка привязки — это точка в локальной системе координат спрайта (где (0, 0) — нижний левый угол, а (1, 1) — верхний правый угол). Когда вы устанавливаете позицию спрайта, на самом деле вы устанавливаете позицию anchorPoint. Очень удобно!

person Andrew    schedule 06.10.2011
comment
после спрайта.SetScaleX(0.5f); я должен сделать sprite.setAnchorPoint(1.0f,0.5f); чтобы решить мою проблему. Теперь, как это идет с описанием привязки...???? - person Farhan; 06.10.2011
comment
@Farhan: qcmat.com/understanding-anchorpoint-in-cocos2d взять посмотрите здесь - person Andrew; 06.10.2011