qq_24806067 2015-12-20 04:51 采纳率: 0%
浏览 2107

添加了一个物理世界后(有重力),添加了一个带刚体的精灵,但精灵时不时会自己弹起来,为什么?

添加了物理世界并设置重力,并用一个空心盒子承载
auto scene = Scene::createWithPhysics();

Vect gravity(0, -1000.0);
scene->getPhysicsWorld()->setGravity(gravity);
//开启测试模式
scene->getPhysicsWorld()->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);
auto visibleSize = Director::getInstance()->getVisibleSize();
//创建一个空心盒子刚体作为世界边界
auto body = PhysicsBody::createEdgeBox(Size(visibleSize.width,visibleSize.height-100),PHYSICSBODY_MATERIAL_DEFAULT,3);
//body->setDynamic(false);
//  body->setContactTestBitmask(1);
//body->getShape(0)->setRestitution(0);
//创建一个节点,用来承载刚体,这样刚体就能参与到游戏的物理世界
auto node = Node::create();
node->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));
node->setPhysicsBody(body);
scene->addChild(node);
auto layer = HelloWorld::create();
scene->addChild(layer,10);

然后给精灵设置了刚体,并把弹性设置为0
auto playerPhysicsBody = PhysicsBody::createBox(this->getContentSize());

playerPhysicsBody->getShape(0)->setFriction(0);
playerPhysicsBody->getShape(0)->setRestitution(0);
playerPhysicsBody->setCategoryBitmask(1);
playerPhysicsBody->setCollisionBitmask(1);
playerPhysicsBody->setContactTestBitmask(1);
this->setPhysicsBody(playerPhysicsBody);

精灵落下后,并不会弹起,可以过一会,我并不做任何操作,他自己会弹一下弹一下,有时高有时低,还会弹不见。

请问下该如何解决,我想让精灵没有弹性。

  • 写回答

1条回答 默认 最新

  • devmiao 2016-02-12 22:14
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 如何实验stm32主通道和互补通道独立输出
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题