我正在通过从 plist 中检索所有值来动态开发 Cocos2d 游戏。例如,我正在从此链接中给出的 plist 中检索一个值:
那就是我想从 plist 中获取动画 CCRotateTo 的类型及其值。我在哪里做了,但价值来自一些像这样的附加括号:
我在名为 seqarray 的数组中添加了所有动画,例如 CCRotateTo 、 CCScale 。由于在数组的每个索引值中添加了不需要的括号,因此在 CCSequence 中添加这些 seqarray 值时给我带来了巨大的问题。它在 GDB 中显示一些错误,如下所示:
任何人请帮我解决这个问题
编辑
//代码中给定的ActionValues有动画在plist中的路径如“Scene01.Child.animations”。在关键路径中,我将发送 ActionValues 内的路径,例如“Animate1.parameters”
[seqarray addobject: [self DictValue1:@"Scene01.Mario.animations" Keypath:@"Animate1.parameters"]];
我将把场景路径和动画路径传递给下面的方法
+(id)DictValue1 :(id)actionvalues Keypath:(NSString *)Key1
{
NSArray * multiarrays1 = [actionvalues valueForKeyPath:Key1];
for(id actions in multiarrays1)
{
if([[actions valueForKey:@"type"] isEqualToString:@"CCRotateTo"])
{
[sequenceArray addObject:[self RotateTo:actions]];
}
}
return sequenceArray
}
+(CCRotateTo *)RotateTo:(id)Fadevalues
{
if([Fadevalues isKindOfClass:[NSDictionary class]])
{
CCLOG(@"Fadevalues %@",Fadevalues);//All values with duration angle and type
CCLOG(@"Fadevalues %@",[Fadevalues valueForKey:@"parameters"]);// Duration value
NSArray * sss = [Fadevalues valueForKey:@"parameters"];
CCRotateTo * Rotate = [CCRotateTo actionWithDuration:[[Fadevalues valueForKey:@"duration"] intValue] angle:[[sss objectAtIndex:0]intValue]];
return FadeOut;
}
return nil;
}
这就是我将值添加到数组的方式。请帮我解决这个问题