如何使用自我方法Cocos2d传递2个参数

时间:2014-04-07 08:50:06

标签: objective-c

这可能是一个以前已经回答过的无聊问题,但我似乎无法在线找到解决方案(谷歌不友善)。我的问题是,关于Cocos2d,我如何使用self方法传递2个参数。 我的代码示例

-(void)Random {
    [self AiCharacter:theEvilOne];
    [self AiCharacter:theEvilTwo];
}

-(void)AiCharacter(CCSprite*)EvilCharacter {
    //stuff
}

但我想做类似以下的事情

-(void)Random {
    num = 1
    [self AiCharacter:theEvilOne, Num];
    num = 2
    [self AiCharacter:theEvilTwo, Num];
}

 -(void)AiCharacter:(CCSprite*)EvilCharacter (NSInteger*)num { //This line is what seems to be incorrectly formatted/syntactically incorrect. 
    //stuff
}

为了向您提供有关我正在做的事情的更多信息,我有一个与我的单独AI字符相关的多维数组值,并且具有num值来区分与每个精灵相关的行。

4 个答案:

答案 0 :(得分:2)

":"在方法签名中定义参数。这是写它的方式:

-(void)AiCharacter:(CCSprite*)EvilCharacter num:(NSInteger*)num {
}

您可以查看此帖子了解更多信息How do I pass multiple parameters in Objective-C?

答案 1 :(得分:0)

试试这个

-(void)Random {
   num = 1
   [self AiCharacter:theEvilOne: Num];
   num = 2
   [self AiCharacter:theEvilTwo: Num];
 }

-(void)AiCharacter:(CCSprite*)EvilCharacter :  (NSInteger*)num {
  //This line is what seems to be incorrectly formatted/syntactically incorrect.
  //stuff
 }

答案 2 :(得分:0)

请仔细查看方法调用方式,尤其是冒号和参数......否则您将遇到崩溃

               -(void)Random {
                    num = 1
                   [self AiCharacter:theEvilOne number:num];
                   num = 2
                   [self AiCharacter:theEvilTwo number:num];
                }

          -(void)AiCharacter:(CCSprite*)EvilCharacter number:(NSInteger)num {

                }

答案 3 :(得分:-1)

 Try this

-(void)Random {

CGPoint point=ccp(1.0,2.0);
[self AiCharacter:theEvilOne: point];

}

-(void)AiCharacter:(CCSprite*)EvilCharacter :(CGPoint)point { 

float x=point.x;
float y=point.y;

}