44#import " CCEffectNode.h"
55
66@interface CCEffectsTest : TestBase @end
7- @implementation CCEffectsTest
7+ @implementation CCEffectsTest {
8+ #if CC_EFFECTS_EXPERIMENTAL
9+ CCEffectDistanceField* _distanceFieldEffect;
10+ #endif
11+ }
812
913-(id )init
1014{
@@ -16,6 +20,7 @@ -(id)init
1620 return self;
1721}
1822
23+ #if CC_EFFECTS_EXPERIMENTAL
1924-(void )setupDistanceFieldEffectTest
2025{
2126 self.subTitle = @" Distance Field Effect Test" ;
@@ -29,23 +34,107 @@ -(void)setupDistanceFieldEffectTest
2934 [self .contentNode addChild: environment];
3035
3136 CCColor *glowColor = [CCColor colorWithRed: 0.0 green: 0.0 blue: 1.0 alpha: 1.0 ];
32- CCEffectDistanceField* effect = [CCEffectDistanceField effectWithGlowColor: glowColor];
37+ _distanceFieldEffect = [CCEffectDistanceField effectWithGlowColor: glowColor outlineColor: [CCColor redColor ] ];
3338
3439 CCSprite *sampleSprite = [CCSprite spriteWithImageNamed: @" Images/output.png" ];
3540 sampleSprite.position = ccp (0.5 , 0.5 );
3641 sampleSprite.positionType = CCPositionTypeNormalized;
37- sampleSprite.effect = effect ;
42+ sampleSprite.effect = _distanceFieldEffect ;
3843 sampleSprite.scale = 2 .0f ;
3944
40- CCNodeColor* node = [[CCNodeColor alloc ] initWithColor: [CCColor redColor ]];
41- // node.contentSizeInPoints = CGSizeMake(25, 25);
42- node.contentSize = CGSizeMake (6 , 6 );
43- node.position = ccp (10.0 , 50.0 );
44-
45- [self .contentNode addChild: node];
45+ CCSpriteFrame* background = [CCSpriteFrame frameWithImageNamed: @" Tests/slider-background.png" ];
46+ CCSpriteFrame* backgroundHilite = [CCSpriteFrame frameWithImageNamed: @" Tests/slider-background-hilite.png" ];
47+ CCSpriteFrame* handle = [CCSpriteFrame frameWithImageNamed: @" Tests/slider-handle.png" ];
48+
49+ CCSlider* slider = [[CCSlider alloc ] initWithBackground: background andHandleImage: handle];
50+ [slider setBackgroundSpriteFrame: backgroundHilite forState: CCControlStateHighlighted];
51+ slider.positionType = CCPositionTypeNormalized;
52+ slider.position = ccp (0 .1f , 0 .5f );
53+
54+ slider.preferredSizeType = CCSizeTypeMake (CCSizeUnitNormalized, CCSizeUnitUIPoints);
55+ slider.preferredSize = CGSizeMake (0 .5f , 10 );
56+ slider.rotation = 90 ;
57+ slider.anchorPoint = ccp (0 .5f , 0 .5f );
58+ slider.scale = 0.8 ;
59+
60+ [slider setTarget: self selector: @selector (outlineInnerWidthChange: )];
61+
62+ CCSlider* slider2 = [[CCSlider alloc ] initWithBackground: background andHandleImage: handle];
63+ [slider2 setBackgroundSpriteFrame: backgroundHilite forState: CCControlStateHighlighted];
64+ slider2.positionType = CCPositionTypeNormalized;
65+ slider2.position = ccp (0 .15f , 0 .5f );
66+
67+ slider2.preferredSizeType = CCSizeTypeMake (CCSizeUnitNormalized, CCSizeUnitUIPoints);
68+ slider2.preferredSize = CGSizeMake (0 .5f , 10 );
69+ slider2.rotation = 90 ;
70+ slider2.anchorPoint = ccp (0 .5f , 0 .5f );
71+ slider2.scale = 0.8 ;
72+
73+ [slider2 setTarget: self selector: @selector (outlineOuterWidthChange: )];
74+
75+ CCSlider* slider3 = [[CCSlider alloc ] initWithBackground: background andHandleImage: handle];
76+ [slider3 setBackgroundSpriteFrame: backgroundHilite forState: CCControlStateHighlighted];
77+ slider3.positionType = CCPositionTypeNormalized;
78+ slider3.position = ccp (0 .20f , 0 .5f );
79+
80+ slider3.preferredSizeType = CCSizeTypeMake (CCSizeUnitNormalized, CCSizeUnitUIPoints);
81+ slider3.preferredSize = CGSizeMake (0 .5f , 10 );
82+ slider3.rotation = 90 ;
83+ slider3.anchorPoint = ccp (0 .5f , 0 .5f );
84+ slider3.scale = 0.8 ;
85+
86+ [slider3 setTarget: self selector: @selector (glowWidthChange: )];
87+
88+ CCButton* enableGlow = [CCButton buttonWithTitle: @" Outer Glow" ];
89+ enableGlow.positionType = CCPositionTypeNormalized;
90+ enableGlow.anchorPoint = ccp (0 .5f , 0 .5f );
91+ enableGlow.position = ccp (0.9 , 0.8 );
92+ [enableGlow setTarget: self selector: @selector (enableGlow: )];
93+
94+ CCButton* enableOutline = [CCButton buttonWithTitle: @" Outline" ];
95+ enableOutline.positionType = CCPositionTypeNormalized;
96+ enableOutline.anchorPoint = ccp (0 .5f , 0 .5f );
97+ enableOutline.position = ccp (0.9 , 0.7 );
98+ [enableOutline setTarget: self selector: @selector (enableOutline: )];
99+
100+ [self .contentNode addChild: enableOutline];
101+ [self .contentNode addChild: enableGlow];
46102 [self .contentNode addChild: sampleSprite];
103+ [self .contentNode addChild: slider];
104+ [self .contentNode addChild: slider2];
105+ [self .contentNode addChild: slider3];
106+ }
107+
108+ - (void )outlineInnerWidthChange : (id )sender
109+ {
110+ CCSlider* slider = sender;
111+ _distanceFieldEffect.outlineInnerWidth = slider.sliderValue ;
47112}
48113
114+ - (void )outlineOuterWidthChange : (id )sender
115+ {
116+ CCSlider* slider = sender;
117+ _distanceFieldEffect.outlineOuterWidth = slider.sliderValue ;
118+ }
119+
120+ - (void )glowWidthChange : (id )sender
121+ {
122+ CCSlider* slider = sender;
123+ _distanceFieldEffect.glowWidth = slider.sliderValue ;
124+ }
125+
126+ - (void )enableGlow : (id )sender
127+ {
128+ _distanceFieldEffect.glow = !_distanceFieldEffect.glow ;
129+ }
130+
131+ - (void )enableOutline : (id )sender
132+ {
133+ _distanceFieldEffect.outline = !_distanceFieldEffect.outline ;
134+ }
135+
136+ #endif
137+
49138-(void )setupDropShadowEffectTest
50139{
51140 self.subTitle = @" DropShadow Effect Test" ;
@@ -761,7 +850,6 @@ - (CCSprite *)spriteWithEffects:(NSArray *)effects image:(NSString *)spriteImage
761850 return sprite;
762851}
763852
764-
765853-(void )renderTextureHelper : (CCNode *)stage size : (CGSize)size
766854{
767855 CCColor *color = [CCColor colorWithRed: 0.0 green: 0.0 blue: 0.5 alpha: 0.5 ];
0 commit comments