Cocos2dx创建碰撞刚体

joinToWorld函数创建碰撞刚体:

 
 
  1. void Monster::joinToWorld(Node* parent)
  2. {
  3.     Sprite* sp = Sprite::createWithSpriteFrameName(m_sModelPath.asString().c_str());
  4.  
  5.     /* 创建刚体 */
  6.     PhysicsBody* body = PhysicsBody::createBox(sp->getContentSize());
  7.     body->setCategoryBitmask(1);    // 0001
  8.     body->setCollisionBitmask(1);   // 0001
  9.     body->setContactTestBitmask(1); // 0001
  10.  
  11.     /* 精灵居中 */
  12.     sp->setPosition(Point(sp->getContentSize().width * 0.5f, sp->getContentSize().height * 0.5f));
  13.  
  14.     /* 精灵作为Monster的表现,添加到Monster身上 */
  15.     this->addChild(sp);
  16.  
  17.     /* 设置怪物Tag类型 */
  18.     this->setTag(ObjectTag_Monster);
  19.  
  20.     /* 精灵作为Monster的表现,Monster本身没有大小,所以要设置一下大小 */
  21.     this->setContentSize(sp->getContentSize());
  22.  
  23.     /* 刚体添加到Monster本身,而不是精灵身上 */
  24.     this->setPhysicsBody(body);
  25.  
  26.     /* 设置坐标 */
  27.     this->setPosition(Point(getiPosX(), getiPosY()));
  28.  
  29.     /* Monster加入到物理世界 */
  30.     parent->addChild(this);
  31.  
  32. }

代码注释已经够详细的了,大概的意思就是:

1. 创建一个Sprite对象,用于表现Monster的样子

2. 创建一个刚体,用于做物理碰撞

3. 设置怪物Tag类型

4. 将刚体添加到Monster上

5. Monster根据自身属性进行设置(比如设置坐标,完整版还有出场音效、颜色之类的)

6. 将Monster添加到物理世界

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值