我正在尝试创造一个游戏,它遵循电磁场的基本原理。这涉及到将对象放置在地图上,这些对象根据目标对象的电荷吸引或排斥。它是2D的,我想知道在cocos2d库中是否有什么东西具有磁铁效应,或者类似的东西。我现在能想到的唯一解决方案是,在每一帧中,计算每个物体在目标物体上的向量效应,但我觉得,当地图上的磁铁数量增加时,它会变得非常聚集。有什么想法吗?
发布于 2014-07-08 09:23:03
想象一下,你有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:为了获得身体之间的距离,从这里获取代码,get distance between two box2d
https://stackoverflow.com/questions/24617234
复制相似问题