私はcocos2dで作業していて、背景が流れているという効果を作ろうとしています... そこで、次のコードを作成します。しかし、いくつかの問題があります。時間切れになると、2 つの画像間の距離が最初よりも大きくなります。これはなぜですか?私はこれを理解できません。誰か助けてくれませんか?バグはどこにありますか。コードに従います。
-(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)];
}
ここで、画像のサイズはiPhoneの2*ScreenWidth(480*2)、すべてです。