【问题标题】:How to pass 2 parameters with a self method Cocos2d如何使用 self 方法传递 2 个参数 Cocos2d
【发布时间】:2014-05-19 09:58:14
【问题描述】:

这可能是一个之前已经回答过的菜鸟问题,但我似乎无法在网上找到解决方案(谷歌并不友好)。我的问题是,关于 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 值来区分与每个精灵相关的行。

【问题讨论】:

  • 你有 C# 背景吗? Objective C 命名约定是方法名的小写。
  • Tibor Udvari 感谢您的回复,我只是编程(因为没有任何语言经验)不到 2 周,我是一名在校学生,为一个主要项目做这件事。感谢您提供的信息,我将在未来尝试使用它:)

标签: objective-c


【解决方案1】:

“:”在方法签名中定义了一个参数。这是怎么写的:

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

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

【讨论】:

  • 感谢您的回复 :)。这让我朝着正确的方向前进,但我对如何用 self 实际调用该方法感到困惑。我会投票,但没有足够的代表
【解决方案2】:

试试这个

-(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
 }

【讨论】:

  • 谢谢工作完美:) 谢谢接受你的,因为它是最快的,而且有效。
  • 我没有足够的声望来投反对票,一定是其他人这样做了,对此感到抱歉
  • @Joge 您的第二个参数是指“num”而不是“Num”吗?
  • 我的意思是我们需要传递第一个参数,之后需要传递第二个参数。
  • @FuzzyBunnySlippers 我明白你在说什么,我在实施他的解决方案时使用了 num 并且效果很好。
【解决方案3】:

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

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

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

                }

【讨论】:

  • 我接受了其他人,因为他第一个回答并且效果很好
【解决方案4】:
 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;

}

【讨论】:

  • 感谢您的回复,我接受了另一个人作为最佳答案,因为他的解决方案使用与我相同的变量并且他回答得更快。还是谢谢
猜你喜欢
  • 1970-01-01
  • 2017-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 2018-11-13
  • 2012-02-07
相关资源
最近更新 更多