回到Xcode,新建Level1类,继承于CCNode.

打开Level1.m在初始化方法中添加如下方法:

-(void)didLoadFromCCB{
    [self initBasket];
    [self initRestrict];
}

下面分别实现其中2个方法.

首先是initBasket:

-(void)initBasket{
    CCActionMoveBy *mov1 = [CCActionMoveBy actionWithDuration:5 position:ccp(0, -0.7)];
    CCActionMoveBy *mov2 = [CCActionMoveBy actionWithDuration:5 position:ccp(0, 0.7)];
    CCActionSequence *seq = [CCActionSequence actions:mov1,mov2,nil];
    CCActionRepeatForever *repeat = [CCActionRepeatForever actionWithAction:seq];
    [_basket runAction:repeat];
}

很简单,就是用Action移动篮筐,并保持动作永远循环.

下面是后面的Restrict方法:

-(void)initRestrict{
    LevelRestrict *lr = [LevelRestrict sharedInstance];
    lr.bulletCount = 10;
    lr.timeCount = 60;
    lr.scoreCount = 3;
}

每一关都有特定的过关条件,类LevelRestrict就是用来保存过条件的类,其中的bulletCount,timeCount和scoreCount分别表示该Level的子弹限制,时间限制以及分数限制.

在Xcode中新建LevelRestrict类,继承于NSObject,修改LevelRestrict.h如下:

#import <Foundation/Foundation.h>

@interface LevelRestrict : NSObject

@property (nonatomic,assign) NSInteger bulletCount;
@property (nonatomic,assign) NSInteger timeCount;
@property (nonatomic,assign) NSInteger scoreCount;

@property (nonatomic,strong) NSString *levelName;

+(instancetype)sharedInstance;
-(void)print;

打开LevelRestrict.m,实现单例方法:

+(instancetype)sharedInstance{
    static LevelRestrict *sharedLevelRestrict;
    if (!sharedLevelRestrict) {
        sharedLevelRestrict = [LevelRestrict new];
    }
    return sharedLevelRestrict;
}
05-10 16:25