2015-09-24 2 views
1

Я экспериментировал с узлами рисования, и до сих пор я получаю результаты, которые я хочу, но как бы используя метод проб и ошибок.Якорная точка в Cocos2d-x DrawNode

Основная проблема, с которой я сталкиваюсь, заключается в том, что я не могу понять, как работает опорная точка.

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

Однако как же меняется точка привязки на самом деле работает в узле рисовать? Это даже работает? (Я начинаю полагать, что это не так)

Является ли опорная точка воздействием на чертеж? или только окончательное изображение? или ничего?

Прямо сейчас, когда я рисую что-то, кажется, что он нарисован, как если бы я был на холсте, рисуя вокруг (0,0) и перемещая опорную точку, кажется, ничего не делает (независимо от того, перемещаю ли я его раньше или после рисования)

ответ

7

Насколько я помню, DrawNode является подклассом узла. А Node по умолчанию не имеет размера. Если узел не имеет размера (технически это 0x0), точки привязки не будут работать, потому что, например, центр объекта 0x0, это точно такая же точка. Если вы хотите центрировать свой узел, вы должны указать его размер с помощью метода setContentSize.

+0

После его рисования он автоматически не вычисляет его размер содержимого? Кроме того, размер содержимого ссылается от 0,0 до верхнего правого? или от - (ширина/2, высота/2) до + (ширина/2, высота/2)? – Pochi

+0

Нет, это не так. (0, 0) является нижним левым, как в openGl-координатах. Когда вы установите contentSize (когда точка привязки по умолчанию), она будет (0, 0) - (ширина, высота). Затем вы можете просто установить anchorPoint (0.5, 0.5) или что угодно. – Makalele