0

我正在学习为 iPhone 编程,并且正在制作一个简单的球反弹游戏,其中一个球在平台上向上反弹。游戏正常运行,当球到达屏幕顶部 1/4 时,球似乎向上移动(屏幕上的平台向下移动,类似于 Doodle Jump),但是我在尝试实现计分器时遇到问题。当球到达屏幕顶部的 1/4 时,我添加分数并运行以下两行代码:

NSString *nssScore = [NSString stringWithFormat:@"%i", score];
lblScore.text = nssScore;

lblScore 是一个 UILabel 并链接到视图中的文本标签。每次屏幕上的文本更新时,球和所有平台都会返回到它们的起始位置,但球会保持其速度。逐行运行调试器时,我可以毫无错误地运行两行代码,问题在于下次刷新时屏幕上的文本发生变化。主游戏循环和帧速率使用以下代码行运行:

[NSTimer scheduledTimerWithTimeInterval:1.0/60 
   target:self selector:@selector(gameLoop) userInfo:nil repeats:YES];
4

1 回答 1

0

这是布局约束的问题。这个问题实际上与标签没有任何关系,只是设置标签的值会触发重绘(或布局,我不确定到底调用了哪个方法)。最简单的解决方案是关闭 IB 中的自动布局(从屏幕右侧最左侧的选项卡开始)。或者,您可以通过为其约束设置动画而不是设置框架来移动球。

于 2013-02-27T04:12:20.730 回答