1

我正在尝试创建一个遵循电磁场基本原理的游戏。这涉及在地图上放置对象,这些对象根据目标对象的电荷吸引或排斥。它是 2D 的,我想知道 cocos2d 库中是否有任何东西具有磁效应或类似的东西。我现在能想到的唯一解决方案是计算每个对象在每一帧期间放置在目标对象上的矢量效果,但我觉得当地图上的磁铁数量增加时,它会变得非常聚集。有任何想法吗?

4

1 回答 1

1

想象一下,你有 10 个物体的阵列和一个更大的物体作为磁铁。如果磁铁体带电,则阵列中的小物体会飞向更大的物体。不知道它如何与 spritebuilder 一起使用,但我认为cocos2d+ box2d会为你工作。你也可以让身体稍微切换一下。

NSMutableArray *磁体;

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);

    }
  }

PS:要获取物体之间的距离,请从此处获取代码,获取两个 box2d 之间的距离

于 2014-07-08T09:23:03.820 回答