python下的Box2d物理引擎的配置

/*******************************

I come back!

由于已经大四了,正在找工作

导致了至今以来第二长的时间内没有更新博客。向大家表示道歉

*******************************/

前言

Box2d物理引擎

Box2d是一款开源的2d物理引擎,存在很多的版本,C++,Java,html5和python等等

著名的愤怒的小鸟就是使用了这款物理引擎进行开发的

目前也有很多的2d游戏引擎内置了对Box2d物理引擎的支持,比如cocos2d,HTML5的2D游戏引擎FLAG

Box2d物理引擎内部模拟了一个世界,你可以设置这个世界里的重力,然后往这个世界里添加各种物体,以及他们的一些物理特性,比如质量,摩擦,阻尼等等

在设置完这个世界的更新频率后,box2d会为你计算每次更新后的每一个物体的所在的位置和旋转角度。

由于Box2d本身是不负责渲染,我们在使用box2d物理引擎的时候,实际上是将我们在项目中需要绘制出的精灵进行坐标变换后,变成box2d内部世界中的一个物体,由

box2d物理引擎计算这个物体每次更新后位置及选择角度,然后我们在获得这个位置和角度并进行坐标变换,变成我们需要绘制的精灵的位置,并将其绘制出来

这个是我以前在windows phone做的一款游戏 image bird (http://www.dwz.cn/nD94d

里面用的就是box2d物理引擎,感兴趣的可以下下来,玩一玩。

一、配置环境

windows7

python2.7

二、配置方法

1、下载python版的box2d物理引擎,大家解压缩之后可以发现里面有一个setup.py的文件。

http://code.google.com/p/pybox2d/wiki/BuildingfromSource 这里讲解了windows,linux,os X下的配置

不过是英文的,大家可以自己阅读尝试配置一下)

2、下载MinGW并安装,并将它的路径下的bin文件添加到环境变量中(我这里是C:\MinGW\bin)

(MinGW(Minimalist GNU for Windows),又称mingw32,是将gcc编译器和GNU Binutils移植到Win32平台下的产物,包括一系列头文件(Win32API)、库和可执行文件。)

3、下载MSYS并安装

(MSYS是一个小型的GNU环境,包括基本的bash,make等等)

4、下载安装SWIG并安装,将它的路径添加到环境变量中(我这里是“D:\swigwin-3.0.2\swigwin-3.0.2”)

(SWIG是一种简化脚本语言与C/C++接口的开发工具。简而言之,SWIG是一个通过包装和编译 C 语言程序来达到与脚本语言通讯目的的工具)

5、下载python2.7并安装,将它的路径添加到环境变量中(我这里是“D:\Python27”)

(这里有一个让环境变量立刻生效的方式就是打开cmd ,

注意这是我们键入echo %PATH% 显示出的结果是没有刚刚我们添加的环境变量的,

我们输入set PATH=C,然后关闭cmd,再次打开的时候,

键入echo %PATH% 就可以发现刚刚添加的环境变量已经显示了出来)

6、打开python路径下的\Lib\distutils\,新建一个distutils.cfg的文件(我这里是“D:\Python27\Lib\distutils”)

内容为:

[build]compiler=mingw32[build_ext]compiler=mingw32

7、为了运行box2d下的test_打头的例子,我们还需要下载安装pygame

(pygame是跨平台的python模块,专为电子游戏设计,包含图像,声音功能)

安装成功后,我们打开python的IDLE,输入

>>>import pygame

>>>print pygame.ver

会显示出我们安装的pygame版本

8、打开msys下的msys.bat,cd到之前下载的box2d的路径下,到达和setup.py的同一路径

然后键入

setup.py build

成功后再键入

setup.py install –force

成功后会显示下面的东西。

9、至此pybox2d已经安装完毕,我们可以打开example下的hello.py运行进行验证

以及以test_打头的任意一个例子,比如test_car进行进一步的验证

时间: 2024-10-13 02:00:48

python下的Box2d物理引擎的配置的相关文章

COCOS2DX学习之box2d物理引擎在VS2012中的配置

因为vs中并没有继承box2dz游戏物理引擎,所以在开发有关box2d的游戏的时候,要自己将这个引擎添加进去.首先在解决方案中添加一个已经存在的项目,这个项目的路径就是你创建的cocos2dx项目的目录里面cocos2d\external\Box2D\proj.win32这个文件夹下面的一个vs工程,把它添加进去编译好,就会看到proj.win32\Debug.win32中有了Box2d的库. 之后,将生成的box2d的库添加到项目属性的连接器中即可 tool是我创建的coocs2dx项目 CO

cocos2d-x中的Box2D物理引擎

在Cocos2d-x中集成了2个物理引擎,一个是Chipmunk,一个是Box2D.前者是用C语言编写的,文档和例子相对较少:Box2D是用C++写的,并且有比较完善的文档和资料.所以在需要使用物理引擎的时候,大多数开发者会选择Box2D.Box2D是一款用来模拟刚体在物理世界运动的仿真引擎.通过Box2D物理引擎,世界中的物体就可以按照运动定律进行运动. 注:Box2D下的类都是以b2为前缀的,希望不要与你的命名相冲突 1. 首先我们介绍下需要用到的基本概念. 世界(world) :世界代表了

实例介绍Cocos2d-x中Box2D物理引擎:HelloBox2D

我们通过一个实例介绍一下,在Cocos2d-x 3.x中使用Box2D物理引擎的开发过程,熟悉这些API的使用.这个实例运行后的场景如图所示,当场景启动后,玩家可以触摸点击屏幕,每次触摸时候,就会在触摸点生成一个新的精灵,精灵的运行自由落体运动. HelloBox2D实例 使用Box2D引擎进行开发过程,如图12-15所示.下面我们就按照这个步骤介绍一下代码部分.首先看一下看HelloWorldScene.h文件,它的代码如下: [html] view plaincopy #ifndef __H

【极客学院出品】Cocos2d-X系列课程之九-BOX2D物理引擎

Cocos2d-x 是时下最热门的手游引擎,在国内和国外手机游戏开发使用的份额各自是70%和25%,在App Store的top10中,有7个是用它开发的. 本节课程为Cocos2d-x系列课程之九,学习BOX2D物理引擎! 学习路径图: 课程适合小白系统学习,仅需6个课时,在极客学院首席讲师风趣幽默的课程里轻松掌握BOX2D物理引擎.恭喜你也从此将走上为牛X程序员的不归路. 今年上午9点正式上线,请别再期待娱乐圈的新闻了,马上開始学习吧>>> 我们还有很多其它更新更实战的课程,登录极客

实例介绍Cocos2d-x中Box2D物理引擎:碰撞检测

在Box2D中碰撞事件通过实现b2ContactListener类函数实现,b2ContactListener是Box2D提供的抽象类,它的抽象函数:virtual void BeginContact(b2Contact* contact).两个物体开始接触时会响应,但只调用一次.virtual void EndContact(b2Contact* contact).分离时响应.但只调用一次.virtual void PreSolve(b2Contact* contact, const b2Ma

瘸腿蛤蟆笔记42-cocos2d-x-3.2 Box2d物理引擎Motor Joint

瘸腿蛤蟆原创笔记,欢迎转载,转载请标明出处: 源码下载: http://download.csdn.net/detail/notbaron/7900243 上篇回顾 本篇名言:对"战士旅行者"而言,选择其实不是去选择,而是优雅地接受"无限"的邀请.[唐望] 上篇中,蛤蟆学习了Box2d物理引擎中的持续施加力,接下去蛤蟆继续学习其他的Box2d引擎的使用.这次我们使用Box2d物理引擎来学习 Motor Joint     . 理论介绍 本次的理论知识, 咱们回顾下M

实例介绍Cocos2d-x中Box2D物理引擎:碰撞检測

在Box2D中碰撞事件通过实现b2ContactListener类函数实现,b2ContactListener是Box2D提供的抽象类,它的抽象函数:virtual void BeginContact(b2Contact* contact).两个物体開始接触时会响应,但仅仅调用一次. virtual void EndContact(b2Contact* contact).分离时响应. 但仅仅调用一次. virtual void PreSolve(b2Contact* contact, const

瘸腿蛤蟆笔记39-cocos2d-x-3.2 Box2d物理引擎自由落体实现

瘸腿蛤蟆原创笔记,欢迎转载,转载请标明出处: 上篇回顾 本篇名言:烦恼使我受着极大的影响--我一年多没有收到月俸,我和穷困挣扎:我在我的忧患中十分孤独,而且我的忧患是多么多,比艺术使我操心得更厉害! [米开朗基罗] 前段时间蛤蟆出差北京去了,好在中秋节前回来了哈哈. 上篇中,蛤蟆学习了Box2d物理引擎中的Ray-cast代码解释,接下去蛤蟆继续学习其他的Box2d引擎的使用.这次我们使用Box2d物理引擎来学习物理掉落的情况. 理论介绍 本次的理论知识基本和上次RayCast一致,需要补充如下

libgdx学习记录18——Box2d物理引擎

libgdx封装了Box2D物理引擎,通过这个引擎能够模拟物理现实,使设计出的游戏更具有真实感. libgdx中,Box2d程序的大概过程: 1. 创建物理世界world,并设置重力加速度. 2. 创建正交相机,并设置其宽高.Box2d中使用物理世界中米作为单位,而不是图像中的像素,通常设一个比值,这里为了方便,直接设置为10. 3. 创建世界中的动态物体(一般是方块.圆环或其他形状物体)和静态物体(主要指地面.墙壁等). 4. 在渲染函数中添加world时间布,并利用DebugRenderer