1 //
2 // TestLayer.h
3 // MiniTD
4 //
5 // Created by OnePiece on 12-7-30.
6 // Copyright 2012年 __MyCompanyName__. All rights reserved.
7 //
8
9 #import <Foundation/Foundation.h>
10 #import "cocos2d.h"
11 #import "CCCrack.h"
12
13 @interface TestLayer : CCNode
14 {
15 CCCrack *crack;
16 }
17 +(id)scene;
18 @end
1 //
2 // TestLayer.m
3 // MiniTD
4 //
5 // Created by OnePiece on 12-7-30.
6 // Copyright 2012年 __MyCompanyName__. All rights reserved.
7 //
8
9 #import "TestLayer.h"
10 #import "CCExtendLabel.h"
11 #import "BaseDefine.h"
12 #import "CCCrack.h"
13 #import "UpgradeNode.h"
14 @interface TestLayer()<UIGestureRecognizerDelegate>{
15 UpgradeNode *upgradeNode;
16 int buildStep;
17 CCSprite *sprite;
18
19 }
20 @end
21 @implementation TestLayer
22 +(id)scene
23 {
24 CCScene *scene = [CCScene node];
25 TestLayer *testLayer = [TestLayer node];
26 [scene addChild:testLayer];
27
28
29
30
31 return scene;
32 }
33 //多指操作看来最好还是用真机测试,测试各种手势之间的冲突情况
34 -(void)onEnter{
35 [super onEnter];
36
37 sprite=[[CCSprite alloc] initWithFile:@"gege.png"];
38 sprite.position=ccp(200,200);
39 [self addChild:sprite];
40
41
42 // [self buildingProcess];
43
44
45 UIPanGestureRecognizer * panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanFrom:)];
46 panRecognizer.delegate = self;
47
48 // panRecognizer.cancelsTouchesInView=NO;
49 // panRecognizer.delaysTouchesBegan=YES;
50
51 int fff= panRecognizer.maximumNumberOfTouches; //=2;
52 int fdsfdsf= panRecognizer.minimumNumberOfTouches; //=2;
53
54 //panRecognizer.minimumNumberOfTouches=2;
55 // panRecognizer.maximumNumberOfTouches=2;
56 UILongPressGestureRecognizer *pressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handlePressFrom:)];
57 pressGesture.minimumPressDuration = 1;
58
59 pressGesture.allowableMovement = 30;
60
61 pressGesture.delaysTouchesBegan=YES;
62
63 pressGesture.cancelsTouchesInView=NO;
64
65
66 pressGesture.delegate = self;
67
68 // int ff= pressGesture.numberOfTapsRequired;
69 // int ffff= pressGesture.numberOfTouchesRequired;
70 //
71 // pressGesture.numberOfTouchesRequired=2;
72 // pressGesture.numberOfTapsRequired=0;
73
74
75 [[[CCDirector sharedDirector]openGLView]addGestureRecognizer:panRecognizer];
76
77
78 [[[CCDirector sharedDirector]openGLView]addGestureRecognizer:pressGesture];
79
80
81
82
83
84
85
86
87 }
88 -(void)handlePressFrom:(UILongPressGestureRecognizer *)recognizer
89 {
90
91
92 if([recognizer state] == UIGestureRecognizerStateBegan)
93 {
94 printf("长按开始
");
95
96 }
97 else if([recognizer state] == UIGestureRecognizerStateChanged)
98 {
99
100 printf("长按移动
");
101 }
102 else if([recognizer state] == UIGestureRecognizerStateEnded)
103 {
104 printf("长按结束
");
105 }
106 }
107
108
109 //地图的平移
110 - (void)handlePanFrom:(UIPanGestureRecognizer *)recognizer {
111
112
113 if(recognizer.state == UIGestureRecognizerStateBegan)
114 {
115 printf("开始位移
");
116 }
117 else if(recognizer.state == UIGestureRecognizerStateChanged)
118 {
119 printf("位移中
");
120 }
121 else if (recognizer.state == UIGestureRecognizerStateEnded)
122 {
123 printf("位移结束
");
124 }
125 }
126
127
128 //- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
129 //{
130 // return YES;
131 //}
132 //-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
133 //{
134 // return YES;
135 //}
136
137
138
139
140
141
142
143 -(void)buildingProcess;
144 {
145 if(!upgradeNode)
146 {
147 buildStep = 1;
148 upgradeNode = [UpgradeNode nodeWithParent:self Level:3];
149 upgradeNode.position = ccp(200,200);
150 [self addChild:upgradeNode z:MaxZorder];
151 [upgradeNode startProgress];
152
153 // //建造过程特效
154 // CCSprite *buildEffectSprite = [CCSprite spriteWithSpriteFrameName:@"military_build_1.png"];
155 // buildEffectSprite.opacity = 1;
156 // buildEffectSprite.position = ccp(buildEffectSprite.contentSize.width/2,buildEffectSprite.contentSize.height/2);
157 // [mainSprite addChild:buildEffectSprite z:1 tag:200];
158 // [buildEffectSprite runAction:[CCFadeIn actionWithDuration:1.6]];
159 //
160 sprite.opacity=0;
161 [sprite runAction:[CCFadeIn actionWithDuration:10]];
162
163
164
165
166 [self schedule:_cmd]; //调用自身方法
167
168
169 }
170
171 // // 2秒为啥和1.6*3对应
172 //
173 int percentage = [upgradeNode percentage];
174
175 if(buildStep == 1 && percentage >= 32)
176 {
177 buildStep = 2;
178
179 // mainSprite.opacity = 255;
180 // //很聪明啊,通过叠加的效果
181 // [mainSprite setDisplayFrame:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"military_build_1.png"]];
182 //
183 // CCSprite *buildEffectSprite = (CCSprite*)[mainSprite getChildByTag:200];
184 // [buildEffectSprite setDisplayFrame:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"military_build_2.png"]];
185
186 [sprite setDisplayFrame:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"military_build_2.png"]];
187
188 sprite.opacity = 0;
189
190 [sprite runAction:[CCFadeIn actionWithDuration:2]];
191
192 [self unschedule:_cmd]; //停止轮训自身
193
194 }
195 // else if(buildStep == 2 && percentage >= 64)
196 // {
197 // buildStep = 3;
198 //
199 // [mainSprite setDisplayFrame:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"military_build_2.png"]];
200 //
201 // CCSprite *buildEffectSprite = (CCSprite*)[mainSprite getChildByTag:200];
202 // [buildEffectSprite setDisplayFrame:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"militaryTower2.png"]];
203 // buildEffectSprite.opacity = 0;
204 // [buildEffectSprite runAction:[CCFadeIn actionWithDuration:1.6]];
205 // }
206 //
207 //
208 // if(buildStep ==3 && percentage >= 100)
209 // {
210 //
211 //
212 //
213 // buildStep = -1; //建好了
214 //
215 // [upgradeNode endProgress];//移除loading
216 // upgradeNode = nil;//置空
217 //
218 // buildComplete = true; //建塔完毕
219 //
220 // [mainSprite removeChildByTag:200 cleanup:YES];
221 //
222 // CCSpriteFrame *frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"militaryTower2.png"];
223 // [mainSprite setDisplayFrame:frame];
224 // mainSprite.position = ccp(17,-33);
225 //
226 //
227 // //升级的效果
228 // [self upgradeSmoke];//烟雾
229 //
230 // [self unschedule:_cmd]; //停止轮训自身
231 //
232 //
233 //
234 //
235 //
236 //
237 // isCanUpgradeMainTower = true;//可以升级主建筑
238 //
239 // [self UpgradeBuildWithLevel:curUpgradeLevel Property:curPropertyCount Brach:hybrid Skill:(SkillStruct){0,0}];
240 //
241 // //音乐先忽略
242 // // [SoundManager stopEffect:buildEffectID];
243 // // [SoundManager playEffect:Military_Build];
244 //
245 //
246 //
247 //
248 //
249 // zorderPos = ccpAdd(baseSprite.position,ccp(0,-45));
250 // [self.parent reorderChild:self z:[user zorderForPosition:zorderPos]];
251 //
252 // [self focusAnimation:@"LostFocus"];
253 //
254 // //检测是否需要显示锁定精灵
255 // if(curUpgradeLevel == maxUpgradeLevel)
256 // {
257 // lockSprite.visible = YES;
258 // }
259 //
260 //
261 // //检查士兵 是否移动到新的旗子点
262 // [self schedule:@selector(scheduleSoldier) interval:0.5f];
263 //
264 // //实时检测是否需要更新胡萝卜数
265 // [self scheduleUpdate];
266 //
267 // //更新buff
268 // [self schedule:@selector(updateBuff) interval:0.2];
269 //
270 // [user addTower:self];
271 //
272 // //增加一个建塔数成就点
273 // [[AchievementManager sharedManager] addTowerType:Military_Tower Count:1 TowerLevel:1];
274 // }
275 }
276
277
278 -(id)init
279 {
280 if(self = [super init])
281 {
282 [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:-2 swallowsTouches:YES];
283 }
284
285 return self;
286 }
287
288 -(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
289 {
290 // crack = [CCCrack bladeWithMaximumPoint:100];
291 // [crack setTexture:[[CCTextureCache sharedTextureCache] addImage:@"streak.png"]];
292 // [self addChild:crack];
293 printf("轻点开始
");
294 return YES;
295 }
296
297 -(void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event
298 {
299 // CGPoint location = [self convertTouchToNodeSpace:touch];
300 //
301 // [crack push:location];
302
303 printf("轻点滑动
");
304 }
305
306 -(void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event
307 {
308 printf("轻点结束
");
309 }
310 -(void) ccTouchCancelled:(UITouch *)touch withEvent:(UIEvent *)event
311 {
312 printf("触碰取消
");
313 }
314
315
316 @end
[[CCDirector sharedDirector] runWithScene:[CCTransitionFade transitionWithDuration:0.5 scene:[TestLayer scene] withColor:ccBLACK]];