标签:
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("长按开始\n"); 95 96 } 97 else if([recognizer state] == UIGestureRecognizerStateChanged) 98 { 99 100 printf("长按移动\n"); 101 } 102 else if([recognizer state] == UIGestureRecognizerStateEnded) 103 { 104 printf("长按结束\n"); 105 } 106 } 107 108 109 //地图的平移 110 - (void)handlePanFrom:(UIPanGestureRecognizer *)recognizer { 111 112 113 if(recognizer.state == UIGestureRecognizerStateBegan) 114 { 115 printf("开始位移\n"); 116 } 117 else if(recognizer.state == UIGestureRecognizerStateChanged) 118 { 119 printf("位移中\n"); 120 } 121 else if (recognizer.state == UIGestureRecognizerStateEnded) 122 { 123 printf("位移结束\n"); 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("轻点开始\n"); 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("轻点滑动\n"); 304 } 305 306 -(void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event 307 { 308 printf("轻点结束\n"); 309 } 310 -(void) ccTouchCancelled:(UITouch *)touch withEvent:(UIEvent *)event 311 { 312 printf("触碰取消\n"); 313 } 314 315 316 @end
[[CCDirector sharedDirector] runWithScene:[CCTransitionFade transitionWithDuration:0.5 scene:[TestLayer scene] withColor:ccBLACK]];
标签:
原文地址:http://www.cnblogs.com/xiaonanxia/p/5764027.html