Cocos2d iphone Cocos2D中的磁效应

Cocos2d iphone Cocos2D中的磁效应,cocos2d-iphone,spritebuilder,Cocos2d Iphone,Spritebuilder,我试图创建一个遵循电磁场基本原理的游戏。这涉及到将对象放置在地图上,根据目标对象的电荷吸引或排斥对象。它是2D的,我想知道cocos2d库中是否有任何具有磁铁效应或类似的东西。我现在能想到的唯一解决方案是计算每一帧中每个对象在目标对象上放置的矢量效果,但我觉得当地图上磁铁的数量增加时,这种效果会变得非常聚集。有什么想法吗?想象一下,你有一组10个物体和一个更大的物体作为磁铁。若磁铁体带电,那个么阵列中的小物体就会飞向更大的物体。我不知道它如何与spritebuilder配合使用,但我认为CoCo

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

想象一下,你有一组10个物体和一个更大的物体作为磁铁。若磁铁体带电,那个么阵列中的小物体就会飞向更大的物体。我不知道它如何与spritebuilder配合使用,但我认为CoCoCos2D+box2d将适合您。你也可以让身体稍微切换一下

NSM可变阵列*磁性体

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

    }
  }
if(充电==1){
b2Vec2 pos1=磁铁->获取位置();
浮动速度=0.5;//对于减速体,可以将速度从0.1更改为1;
对于(int i=0;iGetPosition();
b2Vec2速度=b2Vec2(位置1-位置2);
速度x=速度x*速度;
速度.y=速度.y*速度;
车身->设置线性车辆行驶速度(速度);
}
}

PS:要获取身体之间的距离,请从这里获取代码

您走的是正确的道路,没有内置的支持