cocos2d CCDrawNode比例边界框

时间:2014-03-25 18:37:58

标签: cocos2d-iphone bounding-box ccaction ccnode

我使用cocos2d并创建CCDrawNode。 我致电addChild:添加CCDrawNode的那一刻我调用以下方法让节点永远缩放:


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

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

导致这种情况的原因是什么?如何才能获得真正的宽度和高度?

谢谢!

1 个答案:

答案 0 :(得分:0)

快速了解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;
相关问题