我正在学习iPhone的编程,我正在制作一个简单的球弹跳游戏,其中一个球在平台上向上弹跳。当游戏到达屏幕的前1/4时(屏幕上的平台向下移动,类似于涂鸦跳转),游戏正常运行并且球看起来向上移动,但是在尝试实施分数计数器时我遇到了问题。当球到达屏幕的前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];
答案 0 :(得分:0)
这是布局约束的问题。问题实际上与标签没有任何关系,只是设置标签的值会触发重绘(或布局,我不确定究竟调用哪个方法)。最简单的解决方案是关闭IB中的自动布局(从屏幕右侧的最左侧选项卡)。或者,您可以通过设置其约束来移动球,而不是设置框架。