Skip to content

Commit 410d351

Browse files
committed
Merge branch 'develop-v3' of https://github.com/cocos2d/cocos2d-iphone into develop-v3
Former-commit-id: be84b4c
2 parents 2430f46 + 8144fe7 commit 410d351

File tree

10 files changed

+531
-41
lines changed

10 files changed

+531
-41
lines changed

VERSION

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.0.0
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
06369bce67a32b973ff96054cf1489afadb70db2
1+
3ef0b9e4c9375dceec338d0225679ba1f1f93edf
Lines changed: 288 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,288 @@
1+
#import "TestBase.h"
2+
#import "CCTextureCache.h"
3+
4+
@interface CCRendererTest : TestBase @end
5+
@implementation CCRendererTest
6+
7+
- (void)setupMotionStreakNodeTest
8+
{
9+
self.subTitle = @"Testing CCMotionStreak";
10+
11+
CCNode *stage = [CCNode node];
12+
stage.anchorPoint = ccp(0.5, 0.5);
13+
stage.positionType = CCPositionTypeNormalized;
14+
stage.position = ccp(0.5, 0.5);
15+
stage.contentSizeType = CCSizeTypeNormalized;
16+
stage.contentSize = CGSizeMake(0.75, 0.75);
17+
[self.contentNode addChild:stage];
18+
19+
// Maybe want to find a better texture than a random tile graphic?
20+
{
21+
CCMotionStreak *streak = [CCMotionStreak streakWithFade:15.0 minSeg:5 width:3 color:[CCColor whiteColor] textureFilename:@"Tiles/05.png"];
22+
[stage addChild:streak];
23+
24+
[streak scheduleBlock:^(CCTimer *timer) {
25+
CCTime t = timer.invokeTime;
26+
CGSize size = stage.contentSizeInPoints;
27+
28+
streak.position = ccp(size.width*(0.5 + 0.5*sin(3.1*t)), size.height*(0.5 + 0.5*cos(4.3*t)));
29+
30+
[timer repeatOnceWithInterval:0.01];
31+
} delay:0.0];
32+
}{
33+
CCMotionStreak *streak = [CCMotionStreak streakWithFade:0.5 minSeg:5 width:3 color:[CCColor redColor] textureFilename:@"Tiles/05.png"];
34+
[stage addChild:streak];
35+
36+
[streak scheduleBlock:^(CCTimer *timer) {
37+
CCTime t = timer.invokeTime;
38+
CGSize size = stage.contentSizeInPoints;
39+
40+
streak.position = ccp(size.width*(0.5 + 0.5*sin(1.6*t)), size.height*(0.5 + 0.5*cos(5.1*t)));
41+
42+
[timer repeatOnceWithInterval:0.01];
43+
} delay:0.0];
44+
}
45+
}
46+
47+
- (void)setupProgressNodeTest
48+
{
49+
self.subTitle = @"Testing various CCProgressNode setups.";
50+
51+
// Radial timer
52+
{
53+
NSString *image = @"Tiles/05.png";
54+
CGPoint position = ccp(0.1, 0.25);
55+
CCTime interval = 1.0/60.0;
56+
57+
CCSprite *sprite = [CCSprite spriteWithImageNamed:image];
58+
sprite.positionType = CCPositionTypeNormalized;
59+
sprite.position = position;
60+
sprite.color = [CCColor grayColor];
61+
[self.contentNode addChild:sprite];
62+
63+
CCProgressNode *progress = [CCProgressNode progressWithSprite:[CCSprite spriteWithImageNamed:image]];
64+
progress.type = CCProgressNodeTypeRadial;
65+
progress.positionType = CCPositionTypeNormalized;
66+
progress.position = position;
67+
[self.contentNode addChild:progress];
68+
69+
[self scheduleBlock:^(CCTimer *timer) {
70+
progress.percentage = 100.0*(0.5 + 0.5*sin(timer.invokeTime*M_PI));
71+
[timer repeatOnceWithInterval:interval];
72+
} delay:interval];
73+
}
74+
75+
// Radial timer with animating midpoint.
76+
{
77+
NSString *image = @"Tiles/05.png";
78+
CGPoint position = ccp(0.1, 0.5);
79+
CCTime interval = 1.0/60.0;
80+
81+
CCSprite *sprite = [CCSprite spriteWithImageNamed:image];
82+
sprite.positionType = CCPositionTypeNormalized;
83+
sprite.position = position;
84+
sprite.color = [CCColor grayColor];
85+
[self.contentNode addChild:sprite];
86+
87+
CCProgressNode *progress = [CCProgressNode progressWithSprite:[CCSprite spriteWithImageNamed:image]];
88+
progress.type = CCProgressNodeTypeRadial;
89+
progress.positionType = CCPositionTypeNormalized;
90+
progress.position = position;
91+
[self.contentNode addChild:progress];
92+
93+
[self scheduleBlock:^(CCTimer *timer) {
94+
progress.midpoint = ccpAdd(ccp(0.5, 0.5), ccpMult(ccpForAngle(timer.invokeTime), 0.25));
95+
progress.percentage = 100.0*(0.5 + 0.5*sin(timer.invokeTime*M_PI));
96+
97+
[timer repeatOnceWithInterval:interval];
98+
} delay:interval];
99+
}
100+
101+
{
102+
NSString *image = @"Tiles/05.png";
103+
CGPoint position = ccp(0.2, 0.25);
104+
CCTime interval = 1.0/60.0;
105+
106+
CCSprite *sprite = [CCSprite spriteWithImageNamed:image];
107+
sprite.positionType = CCPositionTypeNormalized;
108+
sprite.position = position;
109+
sprite.color = [CCColor grayColor];
110+
[self.contentNode addChild:sprite];
111+
112+
CCProgressNode *progress = [CCProgressNode progressWithSprite:[CCSprite spriteWithImageNamed:image]];
113+
progress.type = CCProgressNodeTypeBar;
114+
progress.midpoint = ccp(0.5, 0);
115+
progress.barChangeRate = ccp(0, 1);
116+
progress.positionType = CCPositionTypeNormalized;
117+
progress.position = position;
118+
[self.contentNode addChild:progress];
119+
120+
[self scheduleBlock:^(CCTimer *timer) {
121+
progress.percentage = 100.0*(0.5 + 0.5*sin(timer.invokeTime*M_PI));
122+
123+
[timer repeatOnceWithInterval:interval];
124+
} delay:interval];
125+
}
126+
127+
{
128+
NSString *image = @"Tiles/05.png";
129+
CGPoint position = ccp(0.2, 0.5);
130+
CCTime interval = 1.0/60.0;
131+
132+
CCSprite *sprite = [CCSprite spriteWithImageNamed:image];
133+
sprite.positionType = CCPositionTypeNormalized;
134+
sprite.position = position;
135+
sprite.color = [CCColor grayColor];
136+
[self.contentNode addChild:sprite];
137+
138+
CCProgressNode *progress = [CCProgressNode progressWithSprite:[CCSprite spriteWithImageNamed:image]];
139+
progress.type = CCProgressNodeTypeBar;
140+
progress.midpoint = ccp(0, 0.5);
141+
progress.barChangeRate = ccp(1, 0);
142+
progress.positionType = CCPositionTypeNormalized;
143+
progress.position = position;
144+
[self.contentNode addChild:progress];
145+
146+
[self scheduleBlock:^(CCTimer *timer) {
147+
progress.percentage = 100.0*(0.5 + 0.5*sin(timer.invokeTime*M_PI));
148+
149+
[timer repeatOnceWithInterval:interval];
150+
} delay:interval];
151+
}
152+
153+
{
154+
NSString *image = @"Tiles/05.png";
155+
CGPoint position = ccp(0.3, 0.25);
156+
CCTime interval = 1.0/60.0;
157+
158+
CCSprite *sprite = [CCSprite spriteWithImageNamed:image];
159+
sprite.positionType = CCPositionTypeNormalized;
160+
sprite.position = position;
161+
sprite.color = [CCColor grayColor];
162+
[self.contentNode addChild:sprite];
163+
164+
CCProgressNode *progress = [CCProgressNode progressWithSprite:[CCSprite spriteWithImageNamed:image]];
165+
progress.type = CCProgressNodeTypeBar;
166+
progress.midpoint = ccp(1, 0.5);
167+
progress.barChangeRate = ccp(1, 0);
168+
progress.positionType = CCPositionTypeNormalized;
169+
progress.position = position;
170+
[self.contentNode addChild:progress];
171+
172+
[self scheduleBlock:^(CCTimer *timer) {
173+
progress.percentage = 100.0*(0.5 + 0.5*sin(timer.invokeTime*M_PI));
174+
175+
[timer repeatOnceWithInterval:interval];
176+
} delay:interval];
177+
}
178+
179+
{
180+
NSString *image = @"Tiles/05.png";
181+
CGPoint position = ccp(0.3, 0.5);
182+
CCTime interval = 1.0/60.0;
183+
184+
CCSprite *sprite = [CCSprite spriteWithImageNamed:image];
185+
sprite.positionType = CCPositionTypeNormalized;
186+
sprite.position = position;
187+
sprite.color = [CCColor grayColor];
188+
[self.contentNode addChild:sprite];
189+
190+
CCProgressNode *progress = [CCProgressNode progressWithSprite:[CCSprite spriteWithImageNamed:image]];
191+
progress.type = CCProgressNodeTypeBar;
192+
progress.midpoint = ccp(0.5, 1);
193+
progress.barChangeRate = ccp(0, 1);
194+
progress.positionType = CCPositionTypeNormalized;
195+
progress.position = position;
196+
[self.contentNode addChild:progress];
197+
198+
[self scheduleBlock:^(CCTimer *timer) {
199+
progress.percentage = 100.0*(0.5 + 0.5*sin(timer.invokeTime*M_PI));
200+
201+
[timer repeatOnceWithInterval:interval];
202+
} delay:interval];
203+
}
204+
205+
{
206+
NSString *image = @"Tiles/05.png";
207+
CGPoint position = ccp(0.4, 0.25);
208+
CCTime interval = 1.0/60.0;
209+
210+
CCSprite *sprite = [CCSprite spriteWithImageNamed:image];
211+
sprite.positionType = CCPositionTypeNormalized;
212+
sprite.position = position;
213+
sprite.color = [CCColor grayColor];
214+
[self.contentNode addChild:sprite];
215+
216+
CCProgressNode *progress = [CCProgressNode progressWithSprite:[CCSprite spriteWithImageNamed:image]];
217+
progress.type = CCProgressNodeTypeBar;
218+
progress.midpoint = ccp(0.5, 0.5);
219+
progress.barChangeRate = ccp(1, 1);
220+
progress.positionType = CCPositionTypeNormalized;
221+
progress.position = position;
222+
[self.contentNode addChild:progress];
223+
224+
[self scheduleBlock:^(CCTimer *timer) {
225+
progress.percentage = 100.0*(0.5 + 0.5*sin(timer.invokeTime*M_PI));
226+
227+
[timer repeatOnceWithInterval:interval];
228+
} delay:interval];
229+
}
230+
231+
{
232+
NSString *image = @"Tiles/05.png";
233+
CGPoint position = ccp(0.4, 0.5);
234+
CCTime interval = 1.0/60.0;
235+
236+
CCSprite *sprite = [CCSprite spriteWithImageNamed:image];
237+
sprite.positionType = CCPositionTypeNormalized;
238+
sprite.position = position;
239+
sprite.color = [CCColor grayColor];
240+
[self.contentNode addChild:sprite];
241+
242+
CCProgressNode *progress = [CCProgressNode progressWithSprite:[CCSprite spriteWithImageNamed:image]];
243+
progress.type = CCProgressNodeTypeBar;
244+
progress.midpoint = ccp(0.5, 0.5);
245+
progress.barChangeRate = ccp(0, 0);
246+
progress.positionType = CCPositionTypeNormalized;
247+
progress.position = position;
248+
[self.contentNode addChild:progress];
249+
250+
[self scheduleBlock:^(CCTimer *timer) {
251+
progress.percentage = 100.0*(0.5 + 0.5*sin(timer.invokeTime*M_PI));
252+
253+
[timer repeatOnceWithInterval:interval];
254+
} delay:interval];
255+
}
256+
}
257+
258+
- (void)setupDrawNodeTest
259+
{
260+
self.subTitle = @"Testing CCDrawNode";
261+
262+
CCDrawNode *draw = [CCDrawNode node];
263+
264+
[draw drawDot:ccp(100, 100) radius:50 color:[CCColor redColor]];
265+
[draw drawSegmentFrom:ccp(100, 200) to:ccp(200, 200) radius:25 color:[CCColor blueColor]];
266+
267+
CGPoint points1[] = {
268+
{300, 100},
269+
{350, 50},
270+
{400, 100},
271+
{400, 200},
272+
{350, 250},
273+
{300, 200},
274+
};
275+
[draw drawPolyWithVerts:points1 count:sizeof(points1)/sizeof(*points1) fillColor:[CCColor greenColor] borderWidth:5.0 borderColor:[CCColor whiteColor]];
276+
277+
CGPoint points2[] = {
278+
{325, 125},
279+
{375, 125},
280+
{350, 200},
281+
};
282+
[draw drawPolyWithVerts:points2 count:sizeof(points2)/sizeof(*points2) fillColor:[CCColor blackColor] borderWidth:0.0 borderColor:[CCColor whiteColor]];
283+
284+
[self.contentNode addChild:draw];
285+
}
286+
287+
@end
288+

cocos2d-ui-tests/tests/CCScrollViewTest.m

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
#import "TestBase.h"
2626

27-
@interface CCScrollViewTest : TestBase @end
27+
@interface CCScrollViewTest : TestBase <CCScrollViewDelegate> @end
2828

2929
@implementation CCScrollViewTest
3030

@@ -46,10 +46,36 @@ - (void)setupScrollViewBasicTest
4646

4747
CCScrollView* scrollView = [[CCScrollView alloc] initWithContentNode:[self createScrollContent]];
4848
scrollView.flipYCoordinates = NO;
49+
scrollView.delegate = self;
4950

5051
[self.contentNode addChild:scrollView];
5152
}
5253

54+
- (void)scrollViewDidEndDecelerating:(CCScrollView *)scrollView
55+
{
56+
CCLOG(@"did end decelerating");
57+
}
58+
59+
- (void)scrollViewDidEndDragging:(CCScrollView *)scrollView willDecelerate:(BOOL)decelerate
60+
{
61+
CCLOG(@"did end dragging, decelerate: %@", decelerate ? @"YES" : @"NO");
62+
}
63+
64+
- (void)scrollViewWillBeginDecelerating:(CCScrollView *)scrollView
65+
{
66+
CCLOG(@"will begin decelerating");
67+
}
68+
69+
- (void)scrollViewWillBeginDragging:(CCScrollView *)scrollView
70+
{
71+
CCLOG(@"will begin dragging");
72+
}
73+
74+
- (void)scrollViewDidScroll:(CCScrollView *)scrollView
75+
{
76+
//CCLOG(@"Scrolling");
77+
}
78+
5379
- (void)setupScrollViewPagingTest
5480
{
5581
self.subTitle = @"Paging - Pan the content layer it should snap into a 3 x 3 grid.";

cocos2d-ui-tests/tests/VertexZTest.m

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,20 @@ - (void)setupVertexZTest
7373
// add a card node to hold the cards
7474
_cardNode = [CCSpriteBatchNode batchNodeWithFile:@"Cards/cards.classic.png"];
7575
_cardNode.contentSize = [CCDirector sharedDirector].viewSize;
76+
77+
_cardNode.shaderProgram = [[CCShaderCache sharedShaderCache] programForKey:kCCShader_PositionTextureColorAlphaTest];
78+
GLint location = [_cardNode.shaderProgram uniformLocationForName:@(kCCUniformAlphaTestValue_s)];
79+
[_cardNode.shaderProgram setUniformLocation:location withF1:0.5];
80+
7681
[self.contentNode addChild:_cardNode];
7782

7883
// add an array of cards
7984
for (int count = 0; count < NUMBER_OF_CARDS; count ++)
8085
{
8186
CCSprite *card = [CCSprite spriteWithImageNamed:[self randomCard]];
87+
8288
card.positionType = CCPositionTypeNormalized;
83-
card.position = ccp(0.5 + (count - NUMBER_OF_CARDS / 2) * 0.02, 0.5);
89+
card.position = ccp(0.5 + (count - NUMBER_OF_CARDS / 2) * 0.02, 0.5 + (count - NUMBER_OF_CARDS / 2) * 0.01);
8490
[_cardNode addChild:card];
8591
}
8692
}

cocos2d-ui/CCScrollView.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,18 @@
2525
#import "CCNode.h"
2626

2727
@class CCTapDownGestureRecognizer;
28+
@class CCScrollView;
29+
30+
@protocol CCScrollViewDelegate <NSObject>
31+
32+
@optional
33+
- (void)scrollViewDidScroll:(CCScrollView *)scrollView;
34+
- (void)scrollViewWillBeginDragging:(CCScrollView *)scrollView;
35+
- (void)scrollViewDidEndDragging:(CCScrollView * )scrollView willDecelerate:(BOOL)decelerate;
36+
- (void)scrollViewWillBeginDecelerating:(CCScrollView *)scrollView;
37+
- (void)scrollViewDidEndDecelerating:(CCScrollView *)scrollView;
38+
39+
@end
2840

2941
#ifdef __CC_PLATFORM_IOS
3042

@@ -52,6 +64,8 @@
5264
CGPoint _velocity;
5365
}
5466

67+
@property (nonatomic, weak) id<CCScrollViewDelegate> delegate;
68+
5569
@property (nonatomic,strong) CCNode* contentNode;
5670

5771
@property (nonatomic,assign) BOOL flipYCoordinates;

0 commit comments

Comments
 (0)