我正在使用 cocos2d 并尝试制作背景流动的效果......所以我制作了以下代码。但是有一些问题。当时间到时,两个图像之间的距离比第一次更大。这是为什么?我无法理解这一点,任何人帮助我?错误在哪里。代码如下。
-(void) startScreen:(ccTime) dt {
mBackgroundFar.position = ccp(mBackgroundFar.position.x - 50*dt , mBackgroundFar.position.y);
if (mBackgroundFar.position.x < -SCREEN_WIDTH * 2 )
[mBackgroundFar setPosition:ccp(SCREEN_WIDTH*2 , mBackgroundFar.position.y)];
mBackgroundFar1.position = ccp(mBackgroundFar1.position.x - 50*dt , mBackgroundFar1.position.y);
if (mBackgroundFar1.position.x < -SCREEN_WIDTH * 2 )
[mBackgroundFar1 setPosition:ccp(SCREEN_WIDTH*2 , mBackgroundFar1.position.y)];
mBackgroundMiddle.position = ccp(mBackgroundMiddle.position.x - 150*dt , mBackgroundMiddle.position.y);
if (mBackgroundMiddle.position.x < -SCREEN_WIDTH * 2 )
[mBackgroundMiddle setPosition:ccp(SCREEN_WIDTH*2 , mBackgroundMiddle.position.y)];
mBackgroundMiddle1.position = ccp(mBackgroundMiddle1.position.x - 150*dt , mBackgroundMiddle1.position.y);
if (mBackgroundMiddle1.position.x < -SCREEN_WIDTH * 2 )
[mBackgroundMiddle1 setPosition:ccp(SCREEN_WIDTH*2 , mBackgroundMiddle1.position.y)];
mBackgroundNear.position = ccp(mBackgroundNear.position.x - 250*dt , mBackgroundNear.position.y);
if (mBackgroundNear.position.x < -SCREEN_WIDTH * 2 )
[mBackgroundNear setPosition:ccp(SCREEN_WIDTH*2 , mBackgroundNear.position.y)];
mBackgroundNear1.position = ccp(mBackgroundNear1.position.x - 250*dt , mBackgroundNear1.position.y);
if (mBackgroundNear1.position.x < -SCREEN_WIDTH * 2 )
[mBackgroundNear1 setPosition:ccp(SCREEN_WIDTH*2 , mBackgroundNear1.position.y)];
}
在这里,图像大小是 2*ScreenWidth of iphone(480*2),所有这些。