<< - небольшая операция смены (мой родной язык русский, и я перевел как есть - не уверен, что это правильно). Но вам не обязательно понимать, как это работает в этой ситуации, потому что в этом случае это просто метод для заполнения значений перечисления. </p>
Из документации по cocos2d
- (ccHonorParentTransform) honorParentTransform [read, write, assign]
следует ли преобразовывать в соответствии с его родительскими преобразованиями. Полезно для здоровья баров. Например: не вращайте панель здоровья, даже если родитель вращается. ВАЖНО : Действителен, только если он отображается с использованием CCSpriteBatchNode.
Используете ли вы пакетный рендеринг?
EDIT:
Эта строка очень странная (не предупреждает ли она?)
sprite2.CC_HONOR_PARENT_TRANSFORM_SCALE = false
Вы должны написать
sprite2.honorParentTransform &= ~CC_HONOR_PARENT_TRANSFORM_SCALE;
PS: Перечисление создается с использованием битовых операций, поскольку оно дает вам возможность пропустить конфигурацию. Например, вы можете написать
sprite2.honorParentTransform &= ~(CC_HONOR_PARENT_TRANSFORM_SCALE | CC_HONOR_PARENT_TRANSFORM_ROTATE);
Это позволит переводить и вращать
Таким образом, honorParentTransform является битовой маской, которая позволяет вам конфигурировать его конфигурацию - не только использовать некоторые предопределенные значения, но и использовать их комбинации.
Здесь вы можете написать больше о побитовых операциях
http://www.cprogramming.com/tutorial/bitwise_operators.html
В нашем случае происходит что-то вроде этого:
У вас есть текущая маска, например 01101111
(на самом деле она 32-битная)
и CC_HONOR_PARENT_TRANSFORM_SCALE - что-то вроде этого 00001000
- у него есть только один ненулевой бит. ~
- это инверсия: поэтому он преобразует 00010000
в 11101111
, а затем вы добавляете битовую комбинацию с вашей текущей маской - так что все биты будут сохранены, кроме четвертого!