我有 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;
}