首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Cocos2D中的磁铁效应

Cocos2D中的磁铁效应
EN

Stack Overflow用户
提问于 2014-07-07 18:24:58
回答 1查看 416关注 0票数 1

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

EN

Stack Overflow用户

回答已采纳

发布于 2014-07-08 09:23:03

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

NSMutableArray *磁体;

b2Body *磁铁;

代码语言:javascript
运行
复制
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

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24617234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档