@@ -22,10 +22,11 @@ - (instancetype)initWithCoder:(NSCoder *)coder
22
22
{
23
23
self = [super initWithCoder: coder];
24
24
if (self) {
25
- [self setupColors ];
26
25
27
- if (vectorDisplay)
28
- [self setupTickmarks ];
26
+ self.theme = ThemeHermesPink;
27
+
28
+ [self setupColors ];
29
+ [self setupScene ];
29
30
30
31
self.delegate = self;
31
32
}
@@ -43,15 +44,13 @@ -(void)setupTickmarks
43
44
CGFloat faceWidth = 184 ;
44
45
CGFloat faceHeight = 224 ;
45
46
46
- SKColor *accentColor = [SKColor colorWithRed: 0.831 green: 0.540 blue: 0.612 alpha: 1 ];
47
-
48
47
for (int i = 0 ; i < 12 ; i++)
49
48
{
50
49
CGFloat angle = -(2 *M_PI)/12.0 * i;
51
50
CGFloat workingRadius = faceWidth/2 ;
52
51
CGFloat longTickHeight = workingRadius/15 ;
53
52
54
- SKSpriteNode *tick = [SKSpriteNode spriteNodeWithColor: accentColor size: CGSizeMake (2 , longTickHeight)];
53
+ SKSpriteNode *tick = [SKSpriteNode spriteNodeWithColor: self .markColor size: CGSizeMake (2 , longTickHeight)];
55
54
56
55
tick.position = CGPointZero;
57
56
tick.anchorPoint = CGPointMake (0.5 , (workingRadius-margin)/longTickHeight);
@@ -61,7 +60,7 @@ -(void)setupTickmarks
61
60
62
61
CGFloat h = 25 ;
63
62
64
- NSDictionary *attribs = @{NSFontAttributeName : [NSFont systemFontOfSize: h], NSForegroundColorAttributeName : [SKColor whiteColor ] };
63
+ NSDictionary *attribs = @{NSFontAttributeName : [NSFont systemFontOfSize: h], NSForegroundColorAttributeName : self. textColor };
65
64
66
65
NSAttributedString *labelText = [[NSAttributedString alloc ] initWithString: [NSString stringWithFormat: @" %i " , i == 0 ? 12 : i] attributes: attribs];
67
66
@@ -76,7 +75,7 @@ -(void)setupTickmarks
76
75
CGFloat angle = - (2 *M_PI)/60.0 * i;
77
76
CGFloat workingRadius = faceWidth/2 ;
78
77
CGFloat shortTickHeight = workingRadius/20 ;
79
- SKSpriteNode *tick = [SKSpriteNode spriteNodeWithColor: accentColor size: CGSizeMake (1 , shortTickHeight)];
78
+ SKSpriteNode *tick = [SKSpriteNode spriteNodeWithColor: self .markColor size: CGSizeMake (1 , shortTickHeight)];
80
79
81
80
tick.position = CGPointZero;
82
81
tick.anchorPoint = CGPointMake (0.5 , (workingRadius-margin)/shortTickHeight);
@@ -94,13 +93,91 @@ -(void)setupTickmarks
94
93
numbersLayer.alpha = 0 ;
95
94
}
96
95
97
-
98
96
-(void )setupColors
99
97
{
100
- SKColor *lightColor = [SKColor colorWithRed: 0.848 green: 0.187 blue: 0.349 alpha: 1 ];
101
- SKColor *darkColor = [SKColor colorWithRed: 0.387 green: 0.226 blue: 0.270 alpha: 1 ];
102
- SKColor *accentColor = [SKColor colorWithRed: 0.831 green: 0.540 blue: 0.612 alpha: 1 ];
98
+ SKColor *lightColor = nil ;
99
+ SKColor *darkColor = nil ;
100
+ SKColor *markColor = nil ;
101
+ SKColor *inlayColor = nil ;
102
+ SKColor *handColor = nil ;
103
+ SKColor *textColor = nil ;
104
+
105
+ switch (self.theme ) {
106
+ case ThemeHermesPink:
107
+ {
108
+ lightColor = [SKColor colorWithRed: 0.848 green: 0.187 blue: 0.349 alpha: 1 ];
109
+ darkColor = [SKColor colorWithRed: 0.387 green: 0.226 blue: 0.270 alpha: 1 ];
110
+ markColor = [SKColor colorWithRed: 0.831 green: 0.540 blue: 0.612 alpha: 1 ];
111
+ inlayColor = lightColor;
112
+ handColor = [SKColor whiteColor ];
113
+ textColor = [SKColor whiteColor ];
114
+ break ;
115
+ }
116
+ case ThemeHermesOrange:
117
+ {
118
+ lightColor = [SKColor colorWithRed: 0.892 green: 0.825 blue: 0.745 alpha: 1.000 ];
119
+ darkColor = [SKColor colorWithRed: 0.118 green: 0.188 blue: 0.239 alpha: 1.000 ];
120
+ inlayColor = [SKColor colorWithRed: 1.000 green: 0.450 blue: 0.136 alpha: 1.000 ];
121
+ markColor = [inlayColor colorWithAlphaComponent: 0.5 ];
122
+ handColor = [SKColor whiteColor ];
123
+ textColor = inlayColor;
124
+ break ;
125
+ }
126
+ case ThemeNavy:
127
+ {
128
+ lightColor = [SKColor colorWithRed: 0.067 green: 0.471 blue: 0.651 alpha: 1.000 ];
129
+ darkColor = [SKColor colorWithRed: 0.118 green: 0.188 blue: 0.239 alpha: 1.000 ];
130
+ inlayColor = lightColor;
131
+ markColor = [SKColor whiteColor ];
132
+ handColor = [SKColor whiteColor ];
133
+ textColor = [SKColor whiteColor ];
134
+ break ;
135
+ }
136
+ case ThemeTidepod:
137
+ {
138
+ lightColor = [SKColor colorWithRed: 1.000 green: 0.450 blue: 0.136 alpha: 1.000 ];
139
+ darkColor = [SKColor colorWithRed: 0.067 green: 0.471 blue: 0.651 alpha: 1.000 ];
140
+ inlayColor = [SKColor colorWithRed: 0.953 green: 0.569 blue: 0.196 alpha: 1.000 ];
141
+ markColor = [SKColor whiteColor ];
142
+ handColor = [SKColor whiteColor ];
143
+ textColor = [SKColor whiteColor ];
144
+ break ;
145
+ }
146
+ case ThemeBretonnia:
147
+ {
148
+ lightColor = [SKColor colorWithRed: 0.067 green: 0.420 blue: 0.843 alpha: 1.000 ];
149
+ darkColor = [SKColor colorWithRed: 0.956 green: 0.137 blue: 0.294 alpha: 1.000 ];
150
+ inlayColor = darkColor;
151
+ markColor = [SKColor whiteColor ];
152
+ handColor = [SKColor whiteColor ];
153
+ textColor = [SKColor whiteColor ];
154
+ break ;
155
+ }
156
+ case ThemeNoir:
157
+ {
158
+ lightColor = [SKColor colorWithWhite: 0.3 alpha: 1.0 ];
159
+ darkColor = [SKColor blackColor ];
160
+ inlayColor = darkColor;
161
+ markColor = [SKColor whiteColor ];
162
+ handColor = [SKColor whiteColor ];
163
+ textColor = [SKColor whiteColor ];
164
+ break ;
165
+ }
166
+
167
+ default :
168
+ break ;
169
+ }
103
170
171
+ self.lightColor = lightColor;
172
+ self.darkColor = darkColor;
173
+ self.markColor = markColor;
174
+ self.inlayColor = inlayColor;
175
+ self.textColor = textColor;
176
+ self.handColor = handColor;
177
+ }
178
+
179
+ -(void )setupScene
180
+ {
104
181
SKNode *face = [self childNodeWithName: @" Face" ];
105
182
106
183
SKSpriteNode *hourHand = (SKSpriteNode *)[face childNodeWithName: @" Hours" ];
@@ -113,28 +190,31 @@ -(void)setupColors
113
190
SKSpriteNode *colorRegion = (SKSpriteNode *)[face childNodeWithName: @" Color Region" ];
114
191
SKSpriteNode *numbers = (SKSpriteNode *)[face childNodeWithName: @" Numbers" ];
115
192
116
- hourHand.color = [SKColor whiteColor ] ;
193
+ hourHand.color = self. handColor ;
117
194
hourHand.colorBlendFactor = 1.0 ;
118
195
119
- minuteHand.color = [SKColor whiteColor ] ;
196
+ minuteHand.color = self. handColor ;
120
197
minuteHand.colorBlendFactor = 1.0 ;
121
198
122
- secondHand.color = accentColor ;
199
+ secondHand.color = self. markColor ;
123
200
secondHand.colorBlendFactor = 1.0 ;
124
201
125
- self.backgroundColor = darkColor;
202
+ self.backgroundColor = self. darkColor ;
126
203
127
- colorRegion.color = lightColor;
204
+ colorRegion.color = self. lightColor ;
128
205
colorRegion.colorBlendFactor = 1.0 ;
129
206
130
- numbers.color = accentColor ;
207
+ numbers.color = self. textColor ;
131
208
numbers.colorBlendFactor = 1.0 ;
132
209
133
- hourHandInlay.color = lightColor ;
210
+ hourHandInlay.color = self. inlayColor ;
134
211
hourHandInlay.colorBlendFactor = 1.0 ;
135
212
136
- minuteHandInlay.color = lightColor ;
213
+ minuteHandInlay.color = self. inlayColor ;
137
214
minuteHandInlay.colorBlendFactor = 1.0 ;
215
+
216
+ if (vectorDisplay)
217
+ [self setupTickmarks ];
138
218
}
139
219
140
220
- (void )update : (NSTimeInterval )currentTime forScene : (SKScene *)scene
0 commit comments