Cocos2d iphone 如何在Update方法中枚举和修改CCsprite的positions数组?

Cocos2d iphone 如何在Update方法中枚举和修改CCsprite的positions数组?,cocos2d-iphone,ccsprite,Cocos2d Iphone,Ccsprite,如何为每个增量时间枚举和更改对象的位置(包含在数组中) 我把一些CCsprite对象放在数组中,然后在场景中显示它们,但我也想通过修改更新方法使它们移动,最后一部分我失败了 我该怎么做 @implementation GameScene { Hunter *_hunter; Bird *_bird; NSMutableArray *_arrayOfBirds; } -(void)update:(CCTime)delta{ CGSize view

如何为每个增量时间枚举和更改对象的位置(包含在数组中)

我把一些CCsprite对象放在数组中,然后在场景中显示它们,但我也想通过修改更新方法使它们移动,最后一部分我失败了

我该怎么做

  @implementation GameScene

{
    Hunter *_hunter;
    Bird *_bird;

    NSMutableArray *_arrayOfBirds;

   }

-(void)update:(CCTime)delta{

    CGSize viewSize = [CCDirector sharedDirector].viewSize;

    float birdSpeed = 50;

    for (Bird *birds in _arrayOfBirds) {
        if (birds.position.x < 0) {
            birds.flipX = YES;
        }
        if (birds.position.x > viewSize.width) {
            birds.flipX = NO;
        }
        float distanceToMove = birdSpeed * delta;
        float direction = birds.flipX ? 1 : -1;
        float newX = birds.position.x + direction * distanceToMove;
        float newY = birds.position.y;
        birds.position = ccp(newX, newY);
    }
}

-(void)addBird{
    CGSize viewSize = [CCDirector sharedDirector].viewSize;

    for (int i=0; i < 4; i++) {

        _bird = [[Bird alloc]initWithBirdType:(i)];
        _bird.position = ccp(viewSize.width * 0.5f + 30 * i , viewSize.height * 0.9f - 15* i);
        [self addChild:_bird];
        [_arrayOfBirds addObject:_bird];
    }
}
@实现游戏场景
{
亨特*亨特;
鸟*\u鸟;
NSMutableArray*_arrayOfBirds;
}
-(无效)更新:(CCTime)增量{
CGSize viewSize=[CCDirector sharedDirector].viewSize;
浮鸟速度=50;
用于(鸟*阵列鸟中的鸟){
if(鸟位置x<0){
birds.flipX=是;
}
if(birds.position.x>viewSize.width){
birds.flipX=否;
}
浮动距离移动=鸟速*增量;
浮动方向=birds.flipX?1:-1;
float newX=birds.position.x+方向*距离移动;
float newY=birds.position.y;
birds.position=ccp(newX,newY);
}
}
-(无效)addBird{
CGSize viewSize=[CCDirector sharedDirector].viewSize;
对于(int i=0;i<4;i++){
_bird=[[bird alloc]initWithBirdType:(i)];
_bird.position=ccp(viewSize.width*0.5f+30*i,viewSize.height*0.9f-15*i);
[self addChild:_bird];
[_arrayofbirdsaddobject:_bird];
}
}

您忘了初始化阵列

此处(假定为圆弧)


“我失败了”是如何表现出来的?请具体说明您观察到的错误或行为。@YvesLeBorg当我运行场景时,数组中包含的鸟没有移动,应该在每秒运行更新方法的枚举时移动。这个案子有什么解决办法吗?展示你是如何申报的。如果它是零,你将得到你所描述的。@YvesLeBorg你是对的,它是零。但是为什么是零呢?我错过什么了吗?我将其声明为私有实例(NSMutableArray)(在GameSecene.m中的实现下面的括号中),为了解详细信息,我更新了代码above@YvesLeBorg谢谢你指出,我忘了实例化ArrayOfBird。
-(id) init {
      if(self=[super init]) {
          _arrayOfBirds = [[NSMutableArray alloc] init]; 
          // the rest
      }
      return self;
}