实例化特定数量的精灵

时间:2012-03-04 00:03:22

标签: ios cocos2d-iphone instance ccsprite

在我的游戏中,我需要根据游戏的等级来实例化一定数量的精灵。精灵数量存储在.plist文件中。我的游戏工作方式是它为该特定级别选择一个随机类型的敌人。然后,它会找到级别编号,然后找到该级别需要实例的精灵数量。这就是我的plist的样子:

My Plist

我需要的是一种实现精灵数量的方式,不多也不少。我对代码如何工作有一些想法,但由于我是Objective C的新手,我不知道代码本身会是什么样子。

2 个答案:

答案 0 :(得分:0)

NSString *path = [[NSBundle mainBundle] pathForResource:@"YourPlist" ofType:@"plist"];
NSDictionary *plist = [NSDictionary dictionaryWithContentsOfFile:path];

//Get the dictionary
NSDictionary *levels = [plist objectForKey:@"Mosquito"];
for(int i = 0; i < [[levels objectForKey:@"L-1"] intValue]; i++){
    //make your sprites
}

我会做类似上面的事情并替换你所处的任何级别。

答案 1 :(得分:0)

您可以找到给定级别的精灵数量,如下所示:

- (int)numberOfSpritesForLevel:(int)level
{
    NSString *path = [[NSBundle mainBundle] pathForResource:@"plistFileName" ofType:@"plist"];
    NSDictionary *plist = [NSDictionary dictionaryWithContentsOfFile:path];
    NSDictionary *levels = [plist objectForKey:@"Mosquito"];
    NSString *levelKey = [NSString stringWithFormat:@"L - %d", level]; // Or "L-%d" if there is no space in the keys
    return [[levels objectForKey:levelKey] intValue];
}

然后你可以像这样创建精灵:

int level = 3; // Or whatever value you need.
int numberOfSprites = [self  numberOfSpritesForLevel:level];
for (int i = 0; i < numberOfSprites; i++) {
    // Create a sprite here
}