




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、移動互聯(lián)網(wǎng)創(chuàng)新工場2022-3-151第第10章章 Cocos2D-x中的物理引擎中的物理引擎移動互聯(lián)網(wǎng)創(chuàng)新工場2022-3-152游戲中有很多模擬現(xiàn)實的部分,這些模擬可以使玩家的感覺更真實。雖然不是對于所有游戲來說都必須使用物理引擎,但當需要大量的模擬碰撞和自由落體運動時,選擇物理引擎來開發(fā)無疑會使開發(fā)事半功倍。在智能機平臺游戲中,包括憤怒的小鳥等游戲都采用了物理引擎進行開發(fā)。Cocos2D-x中支持Box2D和Chipmunk兩種物理引擎。本章就介紹物理引擎的基本概念Cccos2D-x中這兩種物理引擎的使用。移動互聯(lián)網(wǎng)創(chuàng)新工場2022-3-153物理引擎物理引擎在使用物理引擎的游戲中,可以
2、把物理引擎理解為控制整個游戲中精靈移動的邏輯控制餐通過定義不同節(jié)點在物理效果中扮演的角色來控制所有節(jié)點的碰撞和移動軌跡。 游戲世界的很多運動規(guī)律都是模擬現(xiàn)實的,盡管有些游戲在現(xiàn)實的基礎上有所創(chuàng)新,但是更多的時候要給玩家以真實的感覺,模擬現(xiàn)實并給予玩家真實的游戲感覺非常重要。在不使用物理引擎的時候,可以通過自己的算法來計算物體的運動規(guī)律。這種方式不僅降低了開發(fā)效率,而且在運行效果上也得到整體的優(yōu)化。于是大家把游戲中模擬物理的計算算法都提卜總結出來,形成了物理引擎。物理引擎通過為剛性物體賦予真實的物理屬性的方式來計算動、旋轉和碰撞反映。物理引擎使用對象屬性(動量、扭矩或者彈性)來模擬剛體行為。好的
3、物理引擎允許有復雜的機械裝置,像球形關節(jié)、輪子、氣缸或者鉸鏈。有些也支持非剛性體的物理屬性,比淹體。盡管物理引擎的功能很強大,但是也有其局限性。在模擬現(xiàn)實世界相關運動效果時,如杲完全模擬,會消耗很大的運算量,因此采取一些“捷徑”來模擬現(xiàn)實的運行效果。比如,當物體運動的步長(速度)超過它自己本身的效果時,會發(fā)生物體互相穿透的效果,所以需要控制物體的移動速度來避免這種穿越現(xiàn)象的發(fā)生 什么是物理引擎 移動互聯(lián)網(wǎng)創(chuàng)新工場2022-3-154物理引擎的作用物理引擎的作用真實的物理世界的模擬。采用牛頓力學為基礎模擬出物理效果。這樣有兩個好處,首先是精靈的運動會更加真實,包括精靈間的相互碰撞、自由落體等,然
4、后就是可以增加操作的隨機性,從而提高游戲的游戲性。整體的處理碰撞機制。雖然絕大部分碰撞的邏輯可以完全不依賴物理引擎來自己實現(xiàn),但是如果一個游戲需要頻繁地大量地處理碰撞的時候,物理引擎絕對是第一選擇,因為物理引擎可以系統(tǒng)化處理碰撞,并且能夠處理較為復雜的情況。關節(jié)與連接的模擬。例如,憤怒的小鳥游戲不僅要處理大量的碰撞,還要處理需要攻擊目標建筑物之間的連接效果等。這時候用物理引擎來幫助實現(xiàn)不僅加快了開發(fā)速度,同時系統(tǒng)化的處理還可以提高程序的運行效果。優(yōu)化的性能。物理引擎對于模擬物理效果的算法進行了優(yōu)化,這些代碼都是經(jīng)歷過很多次推敲的,比個人實現(xiàn)的算法在整體的性能上要高。移動互聯(lián)網(wǎng)創(chuàng)新工場2022-
5、3-155Box2D和和Chipmunk的對比的對比 和Cocos2D引擎一樣,Cocos2D-x同樣支持Box2D和Chipmunk兩個二維的物理引擎,那么在開發(fā)中如何選擇呢?二者又有何異同呢?Chipmunk是COCOS2D系列游戲引擎最早引入的物理引擎,用C語言實現(xiàn)。由于文檔較少,其使用程度沒有Box2D廣泛。Box2D由C+實現(xiàn),而且有JavaScript等其他語言的實現(xiàn),在Hash網(wǎng)頁動畫等方面應用也比較廣泛,因此大多數(shù)開發(fā)人員比較偏愛Box2D。單純從功能上來說,Box2D和Chipmunk并沒有太大的區(qū)別,只是有一些微小的區(qū)別.比如Box2D針對快速移動的物體“穿越”另一物體有特
6、殊的檢測方式。除非你對某種功能有著特殊的需求,否則二者在功能上沒有本質的區(qū)別。在使用上,由于二者的實現(xiàn)語言不同,所以從自己熟悉的語言開始會相對容易一些。另外,Chipmunk有不錯的Objective-C語言接口,對于蘋果系列設備的開發(fā)更好一些,尤其在Cocos2D-iPhone中,因此,之前使用Cocos2D-iPhone可能也會更傾向于使用Chipmunk。 移動互聯(lián)網(wǎng)創(chuàng)新工場2022-3-156Box2D物理引擎物理引擎 Box2D是用C+編寫的,開發(fā)者是ErinCatto。他從2005年開始就在著名的GDC(GameDevelopersConference, 游戲開發(fā)者會議)上做物理模
7、擬相關的演講。2007年9月,他公布了Box2D物理引擎。Box2D以其出色的物理模擬效果和開源的氏性得到了開發(fā)者的認同。從那以后,Box2D引擎的開發(fā)就十分活躍,Box2D的各種實現(xiàn)版本就層出不窮,包括用于Flash網(wǎng)頁游戲的版本。Box2D和手機游戲的結緣可以說是從Box2D的Java版本岀現(xiàn)開始。開發(fā)者喜歡在Android的游戲開發(fā)時集成Box2D來幫助開發(fā)更炫的游戲效果。自從Box2D集成到C0C0S2D系列引擎以后,Box2D和手機游戲的聯(lián)系更加緊密。 移動互聯(lián)網(wǎng)創(chuàng)新工場2022-3-157BOX2D引擎中的重要概念引擎中的重要概念 本部分介紹Box2D引擎中的重要概念,這些概念是構
8、成Box2D世界的基礎。剛體(rigidbody):不會發(fā)生形變的物體,其任何兩點間的距離是不變的。形狀(shape):依附于物體的二維的形狀結構,具有摩擦和恢復的材料屬性。約束(constraint):約束就是限制物體自由的物理連接:在二維中,物體有三個自由度,比如把一個物體固定在墻上,它只能繞著固定的點旋轉,它失去了兩個自由度。接觸約束(contactconstraint):自動創(chuàng)建的約束,防止剛體穿透、模擬摩擦和恢復的特殊約束,不需要手動創(chuàng)建。關節(jié)(joint):把兩個物體固定在一起的約束,包括旋轉、距離和棱柱等。關節(jié)可以支持限制和馬達。關節(jié)馬達(jointmotor):個關節(jié)馬達依靠自
9、由度來驅動物體,比如使用馬達來驅動旋轉。關節(jié)限制(jointlimk):限制關節(jié)的運動范圍如同人的胳賻只能在一定范圍內運動一樣。世界(world):物體、形狀和約束互相作用形成的世界:允許創(chuàng)建多個世界。移動互聯(lián)網(wǎng)創(chuàng)新工場2022-3-158Box2D的使用步驟的使用步驟 Box2D物理引擎的使用步驟如下,同時也是大多數(shù)物理引擎所采用的方式。1)創(chuàng)建一個世界,同時設置其參數(shù)。2)創(chuàng)建剛體地面,定義一個形狀,把它綁定在剛體上:3)創(chuàng)建世界中的其他剛體和約束等。4)在游戲的邏輯循環(huán)中加人物理引擎的世界更新函數(shù)。整個過程很清晰,主要目的就是將負責渲染的C0c0S2D-x引擎部分和負責物理邏輯的Box2D部分結合在一起。這也是在其他平臺上使用BOX2D時需要讀的事情,其中的創(chuàng)建剛體、約束和關節(jié)等是最關鍵的部分,也是和渲染的C0c0S2D-x引擎部分結合的關鍵部分。 移動互聯(lián)網(wǎng)創(chuàng)新工場2022-3-159在在Cocos2D-x中使用中使用Chipmunk Chipmunk引擎由HowlingMoonSoftware的ScottLebcke開發(fā),由C語言編寫,項目兩址是http:/c0de.g00gle.c0m/p/chipmunk-physics/,論壇地址是http:/chipmunk- 相關代碼 請參見書籍10.3中的實例移動互聯(lián)網(wǎng)創(chuàng)新工場20
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院康復患者管理制度
- 公路橋梁安全檢測方法試題及答案
- 公??蛻糍Y源管理制度
- 安全現(xiàn)場分級管理制度
- 工地廚房獎罰管理制度
- 公司清潔外包管理制度
- 行政組織協(xié)作機制考題及答案
- 數(shù)據(jù)的生命周期管理流程試題及答案
- 安全操作規(guī)定管理制度
- 學校防疫學生管理制度
- 2025年計算機二級MySQL經(jīng)典試題及答案
- 消防單位招聘心理測試題及答案
- 《研究生就業(yè)指導課件(說課)》
- 2025年武漢鐵路局集團招聘(180人)筆試參考題庫附帶答案詳解
- 2025-2030全球及中國免疫磁珠行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃可行性分析研究報告
- 2025統(tǒng)編版(2024)小學道德與法治一年級下冊《第13課-快樂兒童節(jié)》教學設計
- 2025冶金工業(yè)信息標準研究院招聘筆試參考題庫附帶答案詳解
- 三方協(xié)議空白合同
- 擋煙垂壁施工合同
- 社工招聘筆試題目及答案
- JGJ46-2024施工現(xiàn)場臨時用電安全技術標準宣講課件
評論
0/150
提交評論