3 つの画像があり、それらを次々と繰り返したいと思います。レイヤーが左に移動すると、最初の画像が見えなくなり、この画像は右の最後の画像の直後に新しい位置に移動するため、最初の画像が 3 番目の画像になり、アニメーションが繰り返されます。
私の問題は、少し時間の経過があることです。最初の画像が削除され、3 番目の位置に置かれたときに発生すると思います。ほとんど気づきませんが、アニメーションを 0.1 秒間「一時停止」しているようなもので、これは避けたいと思います。
どのように知っていますか?私はこのコードを試しました(画像を削除して再度挿入します)、または単に置き換えるだけreplace...atIndex
ですが、同じ問題が発生しました。コードは次のとおりです。
if (offsetParam <= offset1-spriteWidth){
CCSprite *temp = [[sprites objectAtIndex:0] retain];
[sprites removeObjectAtIndex:0];
[sprites addObject:temp];
temp.position = ccp(-offset1+(2*spriteWidth), temp.position.y);
[temp release];
offset1 -= spriteWidth;
}
何か案が ?
ありがとう
編集:カウンターで、オブジェクトは動かないのですか?(念のため「保持」を試してみましたが、それの有無にかかわらず、同じ結果が得られました)
if (rightDirection){
//RIGHT
CCLOG(@"offsetParam %f, offset1-spriteWidth %f", offsetParam, offset1-spriteWidth);
if (offsetParam < offset1-spriteWidth){ //move the block to the right
CCSprite *temp = [[grasses objectAtIndex:counterGrass] retain];
counterGrass++;
if (counterGrass>2) counterGrass = 0;
temp.position = ccp(offset1+(2*spriteWidth), temp.position.y);//does not work
[temp release];
offset1 -= spriteWidth;
}