iphone cocos2d бурундук весы физикаSprite

В моем приложении при касании экрана физический спрайт будет добавлен в игровой слой. все physicsSprites будут добавлены в NSMutableArray. когда количество массивов достигает 5, я хочу одновременно уменьшить все добавленные физические спрайты.

Я пробовал, но не работает.

Пожалуйста, помогите мне.

//создаем спрайт

-(void) addNewSpriteAtPosition:(CGPoint)pos
{

 PhysicsSprite *sprite = [PhysicsSprite spriteWithFile:@"sprite.png"];
 sprite.position = pos;
 sprite.tag = 1;
 [sprites addObject:sprite];
 [self addChild: sprite];

 int num = 4;
 cpVect verts[] = {
  cpv(-20,-20),
  cpv(-20, 20),
  cpv( 20, 20),
  cpv( 20,-20),
 };

 cpBody *body = cpBodyNew(1.0f, cpMomentForPoly(1.0f, num, verts, CGPointZero));
 cpBodySetPos( body, pos );
 cpSpaceAddBody(space_, body);

 cpShape* shape = cpPolyShapeNew(body, num, verts, CGPointZero);
 cpShapeSetElasticity( shape, 0.5f );
 cpShapeSetFriction( shape, 0.5f );
 cpSpaceAddShape(space_, shape);

 [sprite setPhysicsBody:body];

    NSLog(@"array size :%i",[sprites count]);
}

- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{

 for( UITouch *touch in touches ) {
  CGPoint location = [touch locationInView: [touch view]];
  location = [[CCDirector sharedDirector] convertToGL: location];

  //add sprite
  [self addNewSpriteAtPosition: location];
 }

    //scale sprites
    if([sprites count]>5){
        //[self terminateGame];
        for(int i=0;i<[sprites count];i++){
            PhysicsSprite *PS = [PhysicsSprite spriteWithFile:
            [sprites objectAtIndex:i]];
            id mAction1 = [CCScaleTo actionWithDuration:0.5 scaleX:0.5 scaleY:0.5];
            [PS runAction:mAction1];
        }
    }
}

я попытался реализовать phisycsSprite.scale = 0,5; в методе обновления, но не работает.


person Hassy31    schedule 10.08.2012    source источник


Ответы (1)


Из файла CCPhysicsSprite.h

Features and Limitations:
   - Scale and Skew properties are ignored.

вы действительно не можете масштабировать спрайт, не масштабируя с ним пространство.

person Stephane Delcroix    schedule 26.02.2013