0

我正在使用 cocos2d 并创建了一个CCDrawNode. addChild:在我调用添加的那一刻,CCDrawNode我调用以下方法来使节点永远缩放:


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

不幸的是,当尝试访问CCDrawNode boundingBox它的宽度和高度时,它不会随着缩放动作而改变。

是什么原因造成的,我怎样才能得到它的真实宽度和高度?

谢谢!

4

1 回答 1

0

快速查看 CCActionScaleBy 的实现表明它在scale不篡改属性的情况下使用节点的contentSizeInPoints属性。这是使用 0,0 作为宽度和高度尺寸boundingBox的原点和属性获得的矩形。contentSizeInPoints获得实际宽度和高度的一种简单方法是乘以contentSize/boundingBox.size当前比例值:

    CGFloat actualWidth = self.boundingBox.size.width * self.scale;
    CGFloat actualHeight = self.boundingBox.size.height * self.scale;
于 2014-03-25T22:55:58.193 回答