Позиция относится к спрайту parent
, а также его anchorPoint
.
anchorPoint
обычно находится в диапазоне от 0 до 1 для каждой координаты со значением по умолчанию 0,5. Я говорю «вообще», потому что это действительно может быть любая ценность, но выходит за пределы 0-1, где вы находитесь за пределами спрайта.
Например, anchorPoint
of (0,0)
занимает положение относительно левого нижнего положения. (1,0)
внизу справа, (0,1)
- левый верхний и (1,1)
- правый верхний. (0.5,0.5)
- это самый центр спрайта по умолчанию.
В принципе, вы просто несколько увеличиваете значение по ширине, чтобы получить относительное положение.
Если вы хотите разместить спрайт в самом низу экрана (нижний левый угол выровнен по левому нижнему углу экрана), вы можете сделать это несколькими способами, основанными только на anchorPoint
.
По умолчанию anchorPoint
(0.5,0.5)
, позиция будет (sprite.contentSize.width/2, sprite.contentSize.height/2)
.
Если вы установили anchorPoint
в (0,0)
, то такое же положение получается просто (0,0)
.
Если вы хотите, чтобы переместить этот спрайт в самом центре экрана (центр справа спрайтов в середине), с anchorpoint
из (0.5, 0.5)
, позиция будет (s.width/2, s.height/2)
.
Это все если вы добавляете спрайт родителю размер экрана, который является, где вторая часть позиционирования приходит в
Положение также относительно родительского спрайта. - который может быть любой прочее CCNode
(CCLayer
, другой CCSprite
, и т.п).
Способ думать об этом не сильно отличается от добавления полноэкранного узла - за исключением мыслить в терминах размера и положения родителя, а не экрана.
Я думаю, что получаю это, пробуя несколько экспериментов! – Jason
Я все еще немного борюсь, у вас есть пример настройки чего-то в левом нижнем углу, а затем настройка чего-то в правом нижнем углу? setAnchor (0,0), кажется, внизу слева, но (0,1), похоже, не имеет правильного положения или, может быть, что-то перемещается с экрана. пытаясь понять это. – Jason
SetAnchor (0,1) не будет перемещать спрайт в нижний правый угол экрана, он сделает его положение относительно правого правого правого правого края спрайта. Поэтому, если вы установили Anchor (0,1) и хотите поместить его в нижнем правом углу экрана, его позиция будет ccp (winSize.width, 0); –