2011-06-24 10 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); 

同じですべてのものを適用する方法を、私は、回転アニメーションとボールを移動したいが、私は混乱しています時間!? CCNodeにBOX2D位置と回転を適用する方法、例えば

+1

どのようにオブジェクトを回転、アニメーション、移動しますか?たとえば、それぞれの変換を順番に適用することができます。 1つの大きな変換を作成するためにそれらを一緒に構成することができます。より具体的ではなく、あなたを助けることは不可能です。 – Mikola

+0

私はbox2dオブジェクトのアニメーションを適用することでこれを行っています.... @ Mikola ..Thax –

答えて

1

スポーンアクションを使用すると、同時に多くのアクションを再生できます。 id spawAction = [CCSpawnアクション:moveAction、rotateAction、nil]; [aSprite runAction:spawAction];

1

// 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と有用です。

関連する問題