0

所以我需要一个可以让我的 2 个精灵一直上下移动的功能或东西!从应用程序开始,屏幕上没有任何内容被触摸..

这是我试图做的事情,但因为它在我的初始化中,它只运行一次..我怎样才能让这个循环成为它自己的样子,让它看起来是动态的?

if (bgSkyer == false) {
            [bg3 runAction:[CCMoveTo actionWithDuration:0.5 position:ccp(240,100)]];
            [bg2 runAction:[CCMoveTo actionWithDuration:1.5 position:ccp(240,95)]];
            bgSkyer = true;
        }else {
            [bg3 runAction:[CCMoveTo actionWithDuration:0.5 position:ccp(240,112)]];
            [bg2 runAction:[CCMoveTo actionWithDuration:1.5 position:ccp(240,80)]];
            bgSkyer = false;
        }
4

2 回答 2

1

如 Jebego 的回答所示,您需要使用CCRepeatForever. 但是,假设您使用bgSkyeras 标志在两个位置之间切换,如果您CCRepeatForever与 一起使用,我们可以完全跳过该标志CCSequence,如下所示(为了清楚起见,使用显式变量,但您始终可以将它们合并为单行如果你想):

CCMoveTo *moveTo_240_95 = [CCMoveTo actionWithDuration:1.5 position:ccp(240,95)];
CCMoveTo *moveTo_240_80 = [CCMoveTo actionWithDuration:1.5 position:ccp(240,80)];
CCSequence *actionsForBg2 = [CCSequence actions:moveTo_240_95, moveTo_240_80, nil];
CCAction *repeatForBg2 = [CCRepeatForever actionWithAction:actionsForBg2];
[bg2 runAction:repeatForBg2]

CCMoveTo *moveTo_240_100 = [CCMoveTo actionWithDuration:0.5 position:ccp(240,100)];
CCMoveTo *moveTo_240_112 = [CCMoveTo actionWithDuration:0.5 position:ccp(240,112)];
CCSequence *actionsForBg3 = [CCSequence actions:moveTo_240_100, moveTo_240_112, nil];
CCAction *repeatForBg3 = [CCRepeatForever actionWithAction:actionsForBg3];
[bg3 runAction:repeatForBg3]

CCSequence依次执行您传递给它的操作,CCRepeatForever将永远重复该序列,直到您调用[node stopAllActions]节点或直到节点被释放。

于 2011-06-18T06:30:25.157 回答
0

我认为这样的东西可能是你正在寻找的:

if (bgSkyer == false) {
    CCMoveTo *moveOne = [CCMoveTo actionWithDuration:0.5 position:ccp(240,100)];
    CCRepeatForever *repeatOne = [CCRepeatForever actionWithAction:moveOne];
    [bg3 runAction:repeatOne];

    CCMoveTo *moveTwo = [CCMoveTo actionWithDuration:1.5 position:ccp(240,95)];
    CCRepeatForever *repeatTwo = [CCRepeatForever actionWithAction:moveTwo];
    [bg3 runAction:repeatTwo];
}else{
    //just repeat code, etc...
}

希望它有效!

于 2011-06-17T20:29:23.670 回答