千锋3G学院-iOS开发视频教程-愤怒的小鸟-第13讲-Box2D物理引擎.pdf

  • 文件大小: 8.82MB
  • 文件类型: pdf
  • 上传日期: 2025-08-17
  • 下载次数: 0

概要信息:

源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
欧阳坚 
视频、源代码、交流网址 
www.1000phone.net 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
2.  各种物理概念 
1.  Box2D物理引擎介绍 
3.  b2Body对象创建 
4.  b2Fixture对象创建 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
} 物理引擎就是解决游戏中物理规律的变化 
} 主要是按照物理规律来进⾏行计算刚体的运⾏行轨迹 
}  Box2D可以和Cocos2D完美配合 
}  Box2D纯C++物理引擎 
}  Chipmunk 纯C的物理引擎 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
} ⼩小⻦鸟运动轨迹(有重力加速度和摩擦力) 
} ⼩小⻦鸟和冰架碰撞变形问题 
} ⼩小⻦鸟和⼩小猪碰撞变形问题 
} ⼩小⻦鸟和地⾯面碰撞变形反弹问题 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
可⻅见 
Cocos2D 
480x320 
不可⻅见 
Box2D 
15米x10米 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
b2World 
b2Body b2Body 
b2Fixture b2Fixture 
b2Shape 
各种属性 
b2Shape 
各种属性 
b2Fixture 
b2Shape 
各种属性 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
} 构造函数 
b2World(const b2Vec2& gravity, 
   bool doSleep); 
} 代码⽚片段 
b2Vec2 gravity; 
gravity.Set(0.0f, -5.0f); 
b2World *world = new b2World(gravity, true); 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
} 刚体是物理引擎中的不变形的对象 
} 刚体有⾃自⾝身的属性b2BodyDef 
} 刚体有若干的b2Fixture属性 
} 刚体有质⼼心点 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
}  b2Fixture是依附在刚体上的物理特质属性 
}  b2Fixture有各种形状 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
}  b2PolygonShape 多边形形状 
}  b2CircleShape    圆形形状 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
Cocos2D 
480x320 
Box2D 
15米x10米 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
 b2BodyDef groundBodyDef; 
 groundBodyDef.position.Set(0, 0); 
     
 b2Body* groundBody =  
 world->CreateBody(&groundBodyDef); 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
 b2BodyDef ballBodyDef; 
 ballBodyDef.type = b2_dynamicBody; 
 ballBodyDef.position.Set( 
 100/32, 100/32); 
 
 ballBodyDef.userData = self; 
 b2Body *ballBody =  
 world->CreateBody(&ballBodyDef); 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
  
ballBodyDef.bullet = yes; 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
} 一个b2Body可以有多个b2Fixture,每个Fixture表
示一个物理特性 
u  shape        形状 
u  density      密度 
u  friction      摩擦 
u  restitution 恢复系统 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
 b2FixtureDef ballShapeDef; 
 ballShapeDef.shape = &blockShape; 
 ballShapeDef.density = 80.0f; 
 ballShapeDef.friction = 1.0f; 
 ballShapeDef.restitution = 0.5f; 
 ballBody->CreateFixture(&ballShapeDef); 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
b2World 
b2Body b2Body 
b2Fixture b2Fixture 
b2Shape 
各种属性 
b2Shape 
各种属性 
b2Fixture 
b2Shape 
各种属性 
源⾃自清华 值得信赖 
中国移动互联⺴⽹网研发培训专家 
} 千锋互联:          www.1000phone.com 
} 千锋3G学院:       www.mobiletrain.org 
} 千锋嵌入式学院:  www.embedtrain.org

缩略图:

  • 缩略图1
  • 缩略图2
  • 缩略图3
  • 缩略图4
  • 缩略图5
当前页面二维码

广告: