2014-07-07 1 views
1

전 자기장의 기본 원리를 따르는 게임을 만들려고합니다. 이것은 대상 개체의 요금에 따라 끌리는 맵에 개체를 배치하는 것과 관련됩니다. 그것은 2D이고 Cocos2d 라이브러리에 자석 효과가 있거나 그 라인을 따라 존재하는 것이 있다면 궁금합니다. 내가 지금 생각할 수있는 유일한 해결책은 각 오브젝트가 각 오브젝트에서 대상 오브젝트 위에 놓이는 벡터 효과를 계산하는 것입니다. 그러나 맵상의 자석 수가 증가 할 때 매우 집중 될 수 있다고 생각합니다. 어떤 아이디어?Cocos2D의 자석 효과

+0

에서 코드를 얻을 얻으려면,이에 대한 내장 지원이 없다 – LearnCocos2D

답변

1

10 개의 시체와 1 개의 큰 시체가 자석처럼 배열되어 있다고 가정 해보십시오. 자석 몸체가 충전되면 어레이에서 몸체가 거의 차고 더 큰 몸으로 날아갑니다. spritebuilder가 어떻게 작동하는지 모르지만, cocos2d + box2d이 도움이 될 것입니다. 또한 시체를 조금씩 토글 할 수 있습니다.

NSMutableArray * magneticBodies;

b2Body * 자석;

if (charged == 1) { 

    b2Vec2 pos1 = magnet->GetPosition(); 
    float speed = 0.5; // You can сhange speed from 0.1 to 1 for slowdown bodies; 

for (int i = 0; i < magneticBodies.count; i++) { 

    b2Body *body = (b2Body*)[[magneticBodies objectAtIndex:i] pointerValue]; 

    b2Vec2 pos2 = body->GetPosition(); 

    b2Vec2 velocity = b2Vec2(pos1 - pos2); 

    velocity.x = velocity.x*speed; 
    velocity.y = velocity.y*speed; 

    body->SetLinearVelocity(velocity); 

    } 
    } 

추신 : 몸 사이의 거리가 여기 get distance between two box2d 당신이 올바른 궤도에있어