您的位置:首页 > 其它

box2d 模拟真实世界的物体碰撞 类似愤怒的小鸟

2013-12-14 10:58 483 查看


1box2d

Box2D是一个用于模拟2D刚体物体的C++引擎。作者为Erin Catto。Box2D使用zlib许可。zlib许可是一个自由软件授权协议,但并非copyleft

它已被用于蜡笔物理学愤怒的小鸟、Rolando、Fantastic
Contraption、Incredibots、Tiny Wings、Transformice、Happy Wheels等游戏的开发,[3]对于iPhone、iPad和Android游戏,可以使用Cocos2d游戏引擎和Corona Framework。[1]


2box2d安装

由于box2d应用了cmake,所以要先下载安装cmake 

box2d的最新版

可在下面网址下载。

vs可选择vs2010专业版

打开cmake,在where is source code 选择box2d解压后的文件夹,不是里面的box2d文件夹,

在where to build the binaries 选择/Box2D_v(版本)/Build

点configure选择vs版本,然后运行,没有出错就行(指的是没有最后没生成box2d.sln,可以看按钮下面有 没有红色的提示),然后再按 generate,那么在build里面就可生成box2d.sln,

没有的话就是出错,照上面看看where is source code选择的文件夹有没有错。

打开box2d.sln,选择testbed或者helloworld为你的启动项目,在选择release,可生成testbed。

如果还遇到错误,那就登陆作者的论坛去看看别人发的贴子有没有你的错误,网页可翻译后在看

这个只是用来box2d的测试,了解一些box2d的工作原理,并不是box2d库的的一部分

box2d是由freeglut和glui***的。


3基本用法

-Testbed 设置(linux, windows, mac)

-Testbed 结构

-为testbed创建一个‘test’

-物体(Bodies)

-定制器(Fixtures)

-World设置

-自定义重力(Custom gravity)

-力与冲量(Forces and impulses)

-匀速运动(Moving at constant speed)

-让物体按指定角度旋转(Keeping a body rotated at given angle)

-跳跃(Jumping)

-使用debug draw

-画自己的物体(Drawing your own objects)

-User data

-碰撞剖析(Anatomy of a collision)

-碰撞回调(Collision callbacks)

-碰撞过滤(Collision filtering)

-传感器(Sensors)

-射线投射(Raycasting)

-查询World(World querying)

-移除物体(Removing bodies)

-“触地”问题(The ‘touching the ground’question)

-连接器(Joints)

-一些陷阱(Some gotchas)[2]


4高级话题

-车辆悬浮(Vehicle suspension)

-黏性弹力(Sticky projectiles)

-飞行轨迹(Projected trajectory)

-爆炸(Explosions)

-易碎物体(Breakable bodies)

-自上而下汽车物理(Top-down car physics)

-地形(Terrain)

-单面墙和平台(One-way walls and platforms)

-传送带(Conveyor belts)

-自动扶梯?(Escalators?)

-电梯(Elevators)

-飞箭(Arrow in flight)

-高级运动特性(Advanced character movement)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: