2011-06-24 33 views
0

这里旋转对象是代码:我想移动,动画,并在同一时间

ball = [CCSprite spriteWithFile:@"Ball.png" rect:CGRectMake(0, 0, 52, 52)]; 
     ball.position = ccp(300, 300); 
     ball.tag = 1; 
     [self addChild:ball z:-1]; 

     // Create ball body 
     //b2BodyDef ballBodyDef; 
     ballBodyDef.type = b2_dynamicBody; 
     ballBodyDef.position.Set(100/PTM_RATIO, 300/PTM_RATIO); 
     ballBodyDef.userData = ball; 
     b2Body * ballBody = _world->CreateBody(&ballBodyDef); 

     // Create circle shape 
     b2CircleShape circle; 
     circle.m_radius = 20.0/PTM_RATIO; 

     // Create shape definition and add to body 
     b2FixtureDef ballShapeDef; 
     ballShapeDef.shape = &circle; 
     ballShapeDef.density = -2.5f; 
     ballShapeDef.friction = 0.01f; 
     ballShapeDef.restitution = 1.0f; 
     _ballFixture = ballBody->CreateFixture(&ballShapeDef); 

     b2Vec2 force = b2Vec2(5, 7); 
     ballBody->ApplyLinearImpulse(force, ballBodyDef.position); 

我想旋转,动画和移动球,但我很困惑,如何申请所有的东西在同一时间!?

+1

你想如何旋转,动画和移动物体?例如,您可以顺序应用每个转换;或者将它们组合在一起创造一个巨大的转变。没有更具体的,不可能帮助你。 – Mikola

+0

我已经通过在box2d对象上应用动画来完成此操作.... @ Mikola..Thax –

回答

1

使用Spawn动作同时播放多个动作。 id spawAction = [CCSpawn actions:moveAction,rotateAction,nil]; [aSprite runAction:spawAction];

1

例如,如何Box2D的位置和旋转应用到CCNode,

// Position 
b2Vec2 b2pos = ballBody->GetPosition(); 
CGPoint position = ccpMult(CGPointMake(b2pos.x, b2pos.y), PTM_RATIO); 
ball.position = position; 

// Rotation 
float angle = ballBody->GetAngle(); 
ball.rotation = -(CC_RADIANS_TO_DEGREES(angle)); 

顺便说一句,CCBox2D是cocos2d的和Box2D的帮助。

相关问题