Skip to content

Commit 04802e3

Browse files
committed
Fix to make opacity from the parent CCNode cascade to CCNodeColor and CCNodeGradient
1 parent b53b44e commit 04802e3

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

cocos2d/CCNodeColor.m

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,13 @@ -(void) setOpacity: (CGFloat) opacity
134134
[super setOpacity:opacity];
135135
[self updateColor];
136136
}
137+
138+
- (void)updateDisplayedOpacity:(CGFloat)parentOpacity
139+
{
140+
[super updateDisplayedOpacity:parentOpacity];
141+
[self updateColor];
142+
}
143+
137144
@end
138145

139146

@@ -185,9 +192,9 @@ - (void) updateColor
185192

186193
float gmin = MIN(MIN(g0, g1), MIN(g2, g3));
187194
float gmax = MAX(MAX(g0, g1), MAX(g2, g3));
188-
189-
GLKVector4 a = GLKVector4Make(_color.r*_color.a, _color.g*_color.a, _color.b*_color.a, _color.a);
190-
GLKVector4 b = GLKVector4Make(_endColor.r*_endColor.a, _endColor.g*_endColor.a, _endColor.b*_endColor.a, _endColor.a);
195+
NSLog(@"RCB");
196+
GLKVector4 a = GLKVector4Make(_color.r*_color.a*_displayColor.a, _color.g*_color.a*_displayColor.a, _color.b*_color.a*_displayColor.a, _color.a*_displayColor.a);
197+
GLKVector4 b = GLKVector4Make(_endColor.r*_endColor.a*_displayColor.a, _endColor.g*_endColor.a*_displayColor.a, _endColor.b*_endColor.a*_displayColor.a, _endColor.a*_displayColor.a);
191198
_colors[0] = GLKVector4Lerp(a, b, (g0 - gmin)/(gmax - gmin));
192199
_colors[1] = GLKVector4Lerp(a, b, (g1 - gmin)/(gmax - gmin));
193200
_colors[2] = GLKVector4Lerp(a, b, (g2 - gmin)/(gmax - gmin));
@@ -237,6 +244,12 @@ -(void) setEndOpacity: (CGFloat) o
237244
[self updateColor];
238245
}
239246

247+
- (void)updateDisplayedOpacity:(CGFloat)parentOpacity
248+
{
249+
[super updateDisplayedOpacity:parentOpacity];
250+
[self updateColor];
251+
}
252+
240253
-(void) setVector: (CGPoint) v
241254
{
242255
_vector = v;

0 commit comments

Comments
 (0)