Iphone Cocos2D随机精灵运动
作为Cocos2D的初学者,我正在尝试制作一款iPhone游戏,其中一些奶牛在屏幕上随机移动。我使用代码从这里移动精灵:。我在init方法wia和addAnimal方法中添加精灵: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
-(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。非常适合我,不客气。你可以把我的答案标记为正确,以帮助其他人以后找到它。