3
3
#import " CCNodeColor.h"
4
4
#import " CCEffectNode.h"
5
5
6
+ enum DFTest { DISTANCE_FIELD, OUTLINE };
7
+
6
8
@interface CCEffectsTest : TestBase @end
7
9
@implementation CCEffectsTest {
8
10
#if CC_EFFECTS_EXPERIMENTAL
9
11
CCEffectDistanceField* _distanceFieldEffect;
10
12
#endif
13
+ CCEffectDFOutline* _outlineEffect;
14
+ enum DFTest _currentEffect;
11
15
}
12
16
13
17
-(id )init
@@ -20,11 +24,68 @@ -(id)init
20
24
return self;
21
25
}
22
26
27
+ #pragma mark Distance Fields
28
+
29
+ -(void )setupDFOutlineEffectTest
30
+ {
31
+ _currentEffect = OUTLINE;
32
+ self.subTitle = @" Distance Field Outline Test" ;
33
+
34
+ CCSprite *environment = [CCSprite spriteWithImageNamed: @" Images/MountainPanorama.jpg" ];
35
+ environment.positionType = CCPositionTypeNormalized;
36
+ environment.anchorPoint = ccp (0.5 , 0.5 );
37
+ environment.position = ccp (0 .5f , 0 .5f );
38
+
39
+ _outlineEffect = [CCEffectDFOutline effectWithOutlineColor: [CCColor redColor ] fillColor: [CCColor blackColor ]];
40
+
41
+ CCSprite *sampleSprite = [CCSprite spriteWithImageNamed: @" Images/output.png" ];
42
+ sampleSprite.position = ccp (0.5 , 0.5 );
43
+ sampleSprite.positionType = CCPositionTypeNormalized;
44
+ sampleSprite.effect = _outlineEffect;
45
+ sampleSprite.scale = 2 .0f ;
46
+
47
+ CCSpriteFrame* background = [CCSpriteFrame frameWithImageNamed: @" Tests/slider-background.png" ];
48
+ CCSpriteFrame* backgroundHilite = [CCSpriteFrame frameWithImageNamed: @" Tests/slider-background-hilite.png" ];
49
+ CCSpriteFrame* handle = [CCSpriteFrame frameWithImageNamed: @" Tests/slider-handle.png" ];
50
+
51
+ CCSlider* slider = [[CCSlider alloc ] initWithBackground: background andHandleImage: handle];
52
+ [slider setBackgroundSpriteFrame: backgroundHilite forState: CCControlStateHighlighted];
53
+ slider.positionType = CCPositionTypeNormalized;
54
+ slider.position = ccp (0 .1f , 0 .5f );
55
+
56
+ slider.preferredSizeType = CCSizeTypeMake (CCSizeUnitNormalized, CCSizeUnitUIPoints);
57
+ slider.preferredSize = CGSizeMake (0 .5f , 10 );
58
+ slider.rotation = 90 ;
59
+ slider.anchorPoint = ccp (0 .5f , 0 .5f );
60
+ slider.scale = 0.8 ;
61
+
62
+ [slider setTarget: self selector: @selector (outlineInnerWidthChange: )];
63
+
64
+ CCSlider* slider2 = [[CCSlider alloc ] initWithBackground: background andHandleImage: handle];
65
+ [slider2 setBackgroundSpriteFrame: backgroundHilite forState: CCControlStateHighlighted];
66
+ slider2.positionType = CCPositionTypeNormalized;
67
+ slider2.position = ccp (0 .15f , 0 .5f );
68
+
69
+ slider2.preferredSizeType = CCSizeTypeMake (CCSizeUnitNormalized, CCSizeUnitUIPoints);
70
+ slider2.preferredSize = CGSizeMake (0 .5f , 10 );
71
+ slider2.rotation = 90 ;
72
+ slider2.anchorPoint = ccp (0 .5f , 0 .5f );
73
+ slider2.scale = 0.8 ;
74
+
75
+ [slider2 setTarget: self selector: @selector (outlineOuterWidthChange: )];
76
+
77
+ [self .contentNode addChild: environment];
78
+ [self .contentNode addChild: slider];
79
+ [self .contentNode addChild: slider2];
80
+ [self .contentNode addChild: sampleSprite];
81
+ }
82
+
23
83
#if CC_EFFECTS_EXPERIMENTAL
24
84
-(void )setupDistanceFieldEffectTest
25
85
{
86
+ _currentEffect = DISTANCE_FIELD;
26
87
self.subTitle = @" Distance Field Effect Test" ;
27
-
88
+
28
89
// CCNodeColor* environment = [CCNodeColor nodeWithColor:[CCColor whiteColor]];
29
90
CCSprite *environment = [CCSprite spriteWithImageNamed: @" Images/MountainPanorama.jpg" ];
30
91
environment.positionType = CCPositionTypeNormalized;
@@ -105,16 +166,25 @@ -(void)setupDistanceFieldEffectTest
105
166
[self .contentNode addChild: slider3];
106
167
}
107
168
169
+ #endif
170
+
108
171
- (void )outlineInnerWidthChange : (id )sender
109
172
{
110
173
CCSlider* slider = sender;
111
- _distanceFieldEffect.outlineInnerWidth = slider.sliderValue ;
174
+ if (_currentEffect == DISTANCE_FIELD)
175
+ _distanceFieldEffect.outlineInnerWidth = slider.sliderValue ;
176
+ else if (_currentEffect == OUTLINE)
177
+ _outlineEffect.outlineInnerWidth = slider.sliderValue ;
178
+
112
179
}
113
180
114
181
- (void )outlineOuterWidthChange : (id )sender
115
182
{
116
183
CCSlider* slider = sender;
117
- _distanceFieldEffect.outlineOuterWidth = slider.sliderValue ;
184
+ if (_currentEffect == DISTANCE_FIELD)
185
+ _distanceFieldEffect.outlineOuterWidth = slider.sliderValue ;
186
+ else if (_currentEffect == OUTLINE)
187
+ _outlineEffect.outlineOuterWidth = slider.sliderValue ;
118
188
}
119
189
120
190
- (void )glowWidthChange : (id )sender
@@ -133,7 +203,7 @@ - (void)enableOutline:(id)sender
133
203
_distanceFieldEffect.outline = !_distanceFieldEffect.outline ;
134
204
}
135
205
136
- #endif
206
+ #pragma mark DropShadow
137
207
138
208
-(void )setupDropShadowEffectTest
139
209
{
@@ -163,6 +233,8 @@ -(void)setupDropShadowEffectTest
163
233
[self .contentNode addChild: effectNode];
164
234
}
165
235
236
+ #pragma mark Glass
237
+
166
238
-(void )setupGlassEffectTest
167
239
{
168
240
self.subTitle = @" Glass Effect Test" ;
0 commit comments