首页 > 其他 > 详细

Cocos2d-x Physics 3 - 掉落的头像

时间:2014-11-08 17:59:38      阅读:289      评论:0      收藏:0      [点我收藏+]

添加一个精灵, 让它从高处落下

boolHelloWorld::init()

{

? ? //////////////////////////////

? ? // 1. super init first

? ? if ( !Layer::init() )

? ? {

? ? ? ? return false;

? ? }

?? ?

#if CC_ENABLE_BOX2D_INTEGRATION

? ? log("启用了Box2d");

#endif

?? ?

? ? Size visibleSize = Director::getInstance()->getVisibleSize();

? ? Vec2 origin = Director::getInstance()->getVisibleOrigin();

?? ?

?? ?

? ??//创建一个精灵

? ? auto sprite = Sprite::create("Icon-58.png");

? ? //创建一个刚体

? ? auto spriteBody = PhysicsBody::createBox(sprite->getContentSize(), PHYSICSBODY_MATERIAL_DEFAULT);

? ? //将刚体赋值给精灵, 这时精灵就具备了物理特性

? ? sprite->setPhysicsBody(spriteBody);

? ? //设置精灵的位置

? ? sprite->setPosition(visibleSize.width/2, visibleSize.height/3*2);

? ? //将精灵添加到层

? ? this->addChild(sprite);

?? ?

? ? this->addChild(sprite);

?

...

}

?

createBox方法有三个参数, 依次是:

1. 矩形区域的大小

2. 设置材质

3. 边线宽度

?

精灵的材质也是使用了预设的PHYSICS_MATERIAL_DEFAUTL实例

?

运行结果可以看到屏幕有一个精灵从高度由慢到快落下, 碰到底部还会反弹

?

bubuko.com,布布扣

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

自定义PhysicsMaterial类的值

auto spriteBody = PhysicsBody::createBox(sprite->getContentSize(), PhysicsMaterial(0.0f, 1.2f, 0.2f));

?

密度 = 0.0f

恢复力 = 1.2f

摩擦力 = 0.2f

?

重新运行, 精灵落到底部弹得更高了

?

?

?

Cocos2d-x Physics 3 - 掉落的头像

原文:http://www.cnblogs.com/yy99/p/4083584.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!