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物理引擎,感興趣的可以下下來,玩一玩。

image

 

 

一、配置環境

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版本

image

8、打開msys下的msys.bat,cd到之前下載的box2d的路徑下,到達和setup.py的同一路徑

image

然后鍵入

setup.py build

成功后再鍵入

setup.py install –force

成功后會顯示下面的東西。

image

 

 

9、至此pybox2d已經安裝完畢,我們可以打開example下的hello.py運行進行驗證

image

以及以test_打頭的任意一個例子,比如test_car進行進一步的驗證

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM