我正在测试一个背景循环动画,其中将有尺寸为 1024x768 像素的图像,向左移动,离开屏幕,然后跳回另一侧,并重复。
我能够通过为两个背景图像创建一个恒定的移动速度来做到这一点(成功),然后我尝试了下面的代码让它跳跃,但是有一个问题:
if((background.center.x) < -511){
background.center = CGPointMake(1536, background.center.y);
}
if((background2.center.x) < -511){
background2.center = CGPointMake(1536, background2.center.y);
}
不知何故,这并没有按我预期的方式工作。每次都会留下几个像素的间隙,我很困惑为什么。有谁知道导致这种情况发生的原因以及如何解决?谢谢!
最佳答案
您似乎忘记考虑移动的距离。大于表达式可能已被触发,因为你移动到很远。我猜你的运动大于 1 像素/帧。
我不确定什么样的值(value)观正在插入你的运动,但我认为要考虑到你应该做的事情......
if ((background.center.x) < -511){
CGFloat dist = background.center.x + 512;
background.center = CGPointMake(1536+dist, background.center.y);
}
if ((background2.center.x) < -511){
CGFloat dist = background2.center.x + 512;
background2.center = CGPointMake(1536+dist, background2.center.y);
}
关于objective-c - 循环移动背景 Objective-C ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7623992/