Cocos2d 학습의 길 5 (Box2d가 CCPhysics Sprite를 사용할 때 컴파일은 해결 방법을 통과하지 않음)

1273 단어 cocos2d

cocos2d는box2d 엔진을 사용하고CCPhysics Sprite를 사용하여 정령을 추가할 때 컴파일 오류가 발생합니다.다음 사항에 유의해야 합니다.


1.sprite.position=ccp(p.x,p.y);이 코드는 [sprite setB2 Body:body]에 있어야 합니다.그 다음.그렇지 않으면 컴파일링이 통과되지 않습니다.
2. [sprite setPTMRatio:PTM RATIO]를 추가하는 것을 잊지 마십시오.이 코드도 setPosition 전에
작은 볼 정령 예시 코드 추가하기
#pragma mark     
-(void) addNewSpriteAtPosition:(CGPoint)p
{

    //        
    ball=[CCPhysicsSprite spriteWithFile:@"ball.png"];
    [ball setPTMRatio:PTM_RATIO];  //    
    ball.tag=1;
    [self addChild:ball];
    
    //      
    b2BodyDef ballBodyDef;
    ballBodyDef.type=b2_dynamicBody;
    ballBodyDef.position.Set(p.x/PTM_RATIO, p.y/PTM_RATIO);
    ballBody=world->CreateBody(&ballBodyDef);
    //         。
    b2CircleShape circle;
    circle.m_radius=8.0/PTM_RATIO;
    //         
    b2FixtureDef ballShapeDef;
    ballShapeDef.shape=&circle;   //  
    ballShapeDef.density=1.0f;    //  
    ballShapeDef.friction=0.3f;   //   
    ballShapeDef.restitution=1.0; //   
    ballFixture=ballBody->CreateFixture(&ballShapeDef);
    [ball  setB2Body:ballBody];  //            
    ball.position=ccp(p.x, p.y);  //           
}

좋은 웹페이지 즐겨찾기