Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone Cocos2D随机精灵运动_Iphone_Objective C_Random_Cocos2d Iphone_Sprite - Fatal编程技术网

Iphone Cocos2D随机精灵运动

Iphone Cocos2D随机精灵运动,iphone,objective-c,random,cocos2d-iphone,sprite,Iphone,Objective C,Random,Cocos2d Iphone,Sprite,作为Cocos2D的初学者,我正在尝试制作一款iPhone游戏,其中一些奶牛在屏幕上随机移动。我使用代码从这里移动精灵:。我在init方法wia和addAnimal方法中添加精灵: -(void) addAnimal { animal = [CCSprite spriteWithFile:@"cow.png"]; animal.position = [self generateRandomCoordinates]; [self addChild:animal]; [self startAnim

作为Cocos2D的初学者,我正在尝试制作一款iPhone游戏,其中一些奶牛在屏幕上随机移动。我使用代码从这里移动精灵:。我在init方法wia和addAnimal方法中添加精灵:

-(void) addAnimal {
animal = [CCSprite spriteWithFile:@"cow.png"];
animal.position = [self generateRandomCoordinates];

[self addChild:animal];
[self startAnimation:animal];
}
我的问题是:
当我在游戏中添加多头牛时,它们会从随机产卵位置移动到另一个随机位置,然后第一头牛停止,另一头牛正确继续。finishedMoving方法中的startAnimation命令始终指向最后一个精灵。这意味着我需要更好地控制我的精灵,但如何做到这一点呢?

您可以尝试实现动物类,它将包含您的精灵并包含随机移动。类Smth

@implementation Cow

- (id) init
{
    self = [super init];

    if( self != nil )
    {
        CCSprite* cowSprite = [CCSprite spriteWithFile:@"cow.png"];
        [self addChild: cowSprite];
    }

    return self;
}

- (void) onEnter
{
    [super onEnter];
    [self makeRandomMovement];
}

- (void) makeRandomMovement
{
    id randomMoveAction = // create your random move action here
    id moveEndCallback = [CCCallFunc actionWithTarget: self selector: @selector(makeRandomMovement)];
    id sequence = [CCSequence actionOne: randomMoveAction two: moveEndCallback];
    [self runAction: sequence];
}

@end
这样,在结束随机运动部分后,将再次调用方法makeRandomMovement来生成并启动新的随机运动部分

然后将addAnimal方法重新制作为smth

- (void) addAnimal
{
    Cow* newCow = [Cow node];
    [newCow setPosition: [self generateRandomPosition]];
    [self addChild: newCow];
}

看看BOIDS植绒算法。等我更熟悉Cocos2D时,我会试试。非常感谢。谢谢Morion。非常适合我,不客气。你可以把我的答案标记为正确,以帮助其他人以后找到它。