Cocos2D CCDrawNode шкала ограничения масштаба

Я использую cocos2d и создаю CCDrawNode, В тот момент, когда я звоню addChild: добавить CCDrawNode Я вызываю следующий метод, чтобы навсегда масштабировать узел:


CCActionScaleBy *scaleAction = [CCActionScaleBy actionWithDuration:0.3f scale:1.1f];
CCActionRepeatForever *repeatForever = [CCActionRepeatForever actionWithAction:scaleAction];
[self runAction:repeatForever];

К сожалению, при попытке доступа к CCDrawNodeboundingBox его ширина и высота не меняются в зависимости от масштаба.

Что вызывает это и как я могу получить его реальную ширину и высоту?

Спасибо!

1 ответ

Решение

Беглый взгляд на реализацию CCActionScaleBy показывает, что он играет с scale свойство узла, не влияя на contentSizeInPoints имущество. boundingBox это прямоугольник, полученный с использованием 0,0 в качестве источника и contentSizeInPoints свойство для размеров ширины и высоты. Простой способ получить фактическую ширину и высоту - это умножить contentSize/boundingBox.size с текущим значением шкалы:

    CGFloat actualWidth = self.boundingBox.size.width * self.scale;
    CGFloat actualHeight = self.boundingBox.size.height * self.scale;
Другие вопросы по тегам