我使用cocos2d并创建CCDrawNode
。
我致电addChild:
添加CCDrawNode
的那一刻我调用以下方法让节点永远缩放:
CCActionScaleBy *scaleAction = [CCActionScaleBy actionWithDuration:0.3f scale:1.1f];
CCActionRepeatForever *repeatForever = [CCActionRepeatForever actionWithAction:scaleAction];
[self runAction:repeatForever];
不幸的是,在尝试访问CCDrawNode
boundingBox
时,它的宽度和高度不会随着缩放操作而改变。
导致这种情况的原因是什么?如何才能获得真正的宽度和高度?
谢谢!
答案 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;