/*******************************
I come back!
由于已經大四了,正在找工作
導致了至今以來第二長的時間內沒有更新博客。向大家表示道歉
*******************************/
前言
Box2d物理引擎
Box2d是一款開源的2d物理引擎,存在很多的版本,C++,java,html5和python等等
著名的憤怒的小鳥就是使用了這款物理引擎進行開發(fā)的
目前也有很多的2d游戲引擎內置了對Box2d物理引擎的支持,比如cocos2d,HTML5的2D游戲引擎FLAG
Box2d物理引擎內部模擬了一個世界,你可以設置這個世界里的重力,然后往這個世界里添加各種物體,以及他們的一些物理特性,比如質量,摩擦,阻尼等等
在設置完這個世界的更新頻率后,box2d會為你計算每次更新后的每一個物體的所在的位置和旋轉角度。
由于Box2d本身是不負責渲染,我們在使用box2d物理引擎的時候,實際上是將我們在項目中需要繪制出的精靈進行坐標變換后,變成box2d內部世界中的一個物體,由
box2d物理引擎計算這個物體每次更新后位置及選擇角度,然后我們在獲得這個位置和角度并進行坐標變換,變成我們需要繪制的精靈的位置,并將其繪制出來
這個是我以前在windows phone做的一款游戲 image bird (http://www.dwz.cn/nD94d)
里面用的就是box2d物理引擎,感興趣的可以下下來,玩一玩。
一、配置環(huán)境
windows7
python2.7
二、配置方法
1、下載python版的box2d物理引擎,大家解壓縮之后可以發(fā)現(xiàn)里面有一個setup.py的文件。
(http://code.google.com/p/pybox2d/wiki/BuildingfromSource 這里講解了windows,linux,os X下的配置
不過是英文的,大家可以自己閱讀嘗試配置一下)
2、下載MinGW并安裝,并將它的路徑下的bin文件添加到環(huán)境變量中(我這里是C:/MinGW/bin)
(MinGW(Minimalist GNU for Windows),又稱mingw32,是將gcc編譯器和GNU Binutils移植到Win32平臺下的產物,包括一系列頭文件(Win32API)、庫和可執(zhí)行文件。)
3、下載MSYS并安裝
(MSYS是一個小型的GNU環(huán)境,包括基本的bash,make等等)
4、下載安裝SWIG并安裝,將它的路徑添加到環(huán)境變量中(我這里是“D:/swigwin-3.0.2/swigwin-3.0.2”)
(SWIG是一種簡化腳本語言與C/C++接口的開發(fā)工具。簡而言之,SWIG是一個通過包裝和編譯 C 語言程序來達到與腳本語言通訊目的的工具)
5、下載python2.7并安裝,將它的路徑添加到環(huán)境變量中(我這里是“D:/Python27”)
(這里有一個讓環(huán)境變量立刻生效的方式就是打開cmd ,
注意這是我們鍵入echo %PATH% 顯示出的結果是沒有剛剛我們添加的環(huán)境變量的,
我們輸入set PATH=C,然后關閉cmd,再次打開的時候,
鍵入echo %PATH% 就可以發(fā)現(xiàn)剛剛添加的環(huán)境變量已經顯示了出來)
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進行進一步的驗證
新聞熱點
疑難解答