【问题标题】:How do you get an int++ to keep counting past 9?你如何得到一个 int++ 来保持超过 9 的计数?
【发布时间】:2014-07-27 21:30:51
【问题描述】:

我对 Objective-C 比较陌生,我正在尝试创建一个游戏。

我目前有一个这样的计分器:

-(void)score { 
    scorenumber++;
    scorelabel.text = [NSString stringWithFormat:@"%i", scorenumber];
}

我遇到的问题是我似乎可以让分数继续计数超过 9。每次达到 9 时,它都会重置回 0,而不是进入 10 11 12 等等。

我该如何解决这个问题?我想要完成的是,每次硬币和星星相交时,它都会增加 +1 得分,每次通过隧道时都会增加 +1 得分

这是整个代码。

【问题讨论】:

  • 这里还有其他事情您没有向我们展示。 int 变量最多可以保存 20 亿个值。
  • @TheParamagneticCroissant:Xcode 和 Objective-C 不能在 16 位平台上运行。
  • 文本区域是否足以显示最左边的数字?最右边的数字重复 0..9,所以如果只显示最后一个数字..
  • 同意,这应该可行。标签是否太窄,以至于只显示最后一个字符?
  • 另外,这不是 Xcode 问题。

标签: objective-c


【解决方案1】:

您的问题是 UILabel(或任何其他显示您的号码)不够大,无法显示多个号码。当它达到 10 时,您只能看到第二个数字,这就是为什么您认为它已被重置为 0。

尝试制作更长的分数标签。

【讨论】:

    【解决方案2】:

    如果你的设计允许你让标签有不同的宽度,你可以使用sizeToFit给它足够的宽度来显示它的文字

    -(void)score { 
        scorenumber++;
        scorelabel.text = [NSString stringWithFormat:@"%i", scorenumber];
        [scorelabel sizeToFit]; // <------------
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-18
      • 2021-07-23
      • 2010-12-28
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 2012-02-26
      相关资源
      最近更新 更多