文档详情

《《Android游戏编程之从零开始》第七章样章》.pdf

发布:2015-10-06约8.01千字共9页下载文档
文本预览下载声明
Box2D 概述 7.1 Box2D 是一款用于 2D 游戏的物理引擎。在 Box2D 物理世界里,创建出的每个物体都更 接近于真实世界中的物体,让游戏中的物体运动起来更加真实可信,让游戏世界看起来更具交 互性。 Android 平台常见的十几款游戏引擎中,例如:Rokon 、AndEngine 、libgdx 等物理引擎都 封装了 Box2D 物理引擎,可见 Box2D 在物理引擎中占据了多重要的位置。 Box2D 在很多平台都有对应的版本:Flash 版本、Iphone 版本、Java 版本(JBox2D )等等, 在本书中开发 Android 语言采用的是 Java ,所以这里介绍的对应 Box2D 平台也是 Java 平台, 称为 JBox2D ,对应的版本为 JBox2d 2.0 。 7.2 将 Box2D 类库导入 Android 项目中 添加 Box2D 类库到 Android 项目详细步骤如下: 新建项目“HelloBox2d”(创建 Android 项目与之前创建项目步骤无差异)。 然后在项目里添加一个“lib”目录用于存放 Box2D 类库(“.jar”)。 右键项目“HelloBox2d”,选 中“New”→ “Folder”选项,然后出现“New Folder”窗口,如 图 7-1 所示。 图 7-1 New Folder 图7-1 所示的窗口中,在“Folder name ”文本框中填写目录名,这个目录名可以自定义,一 般导入外部类库目录都使用 lib 与 libs 来命名,然后单击“Finish ”按钮完成目录的创建。 此时只是将 Box2D 提供的类库放入 Android 项目中,但是并没有添加到项目的类库中, 所以还需要将 Box2D 包添加到项目类库中! 右 击 项 目 “ HelloBox2d ” 选 中“ Properties ” → “ Java Build Path ” → “ Libraries ” → “ Add JARs...” ,选 中“HelloBox2d”项目下 lib 目录下的Jbox2d 类库的 jar 包,最后一直单击 “OK”按钮返回即可,如图 7-2、图 7-3 所示。 图 7-2 项目配置 图 7-3 项目中添加 Box2d 类库 到此,在 Android 项目中添加 JBox2D 物理引擎类库的步骤就结束了,现在就开始进入 Box2D 引擎的物理世界吧! 7.3 物理世界与手机屏幕坐标系之间的关系 本节来讲解一下物理世界与手机屏幕坐标系之间的关系。假设创建一个 200 米的物理世 界,然后观察其物理世界与手机屏幕之间的坐标系关系,如图 7-4 所示。 图 7-4 物理世界与手机屏幕坐标系关系图 7-4 0,0 从图 中可以很清晰的看出,手机屏幕的左上角 ( )坐标,正是物理世界的中心点坐标; 手机屏幕绘制图形时,一般默认以左上角作为锚点!而在 Box2d 的物理世界中,一个新的Body (物 体)等被创建出来之后,默认以其质心 (可以近似为中心点)作为锚点;如图 7-5 所示,是“在屏 幕上绘制一张图片,并且在物理世界中添加一个物体”的位置关系图。 图 7-5 默认放置的位置对比图 除此之外,Box2D 为了使物体与关节等更加贴切的模拟现实,在 Box2D 引擎中使用的长 m Box2D 度单位是“米 ( )”,所以 引擎中的一些方法的长度参数不再是以像素为单位,而 是需要转换成“米”;反之,从 Box2D 引擎函数返回值中得到的长度值也是以“米”做单位 的,使用其值前需要将其转换为像素,然后再使用。 关于米与像素之间的换算关系,其实是通过自定义一个现实与屏幕的比例关系进行换算 的,后续章节
显示全部
相似文档