版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、移動(dòng)互聯(lián)網(wǎng)創(chuàng)新工場2022-3-151第第10章章 Cocos2D-x中的物理引擎中的物理引擎移動(dòng)互聯(lián)網(wǎng)創(chuàng)新工場2022-3-152游戲中有很多模擬現(xiàn)實(shí)的部分,這些模擬可以使玩家的感覺更真實(shí)。雖然不是對于所有游戲來說都必須使用物理引擎,但當(dāng)需要大量的模擬碰撞和自由落體運(yùn)動(dòng)時(shí),選擇物理引擎來開發(fā)無疑會(huì)使開發(fā)事半功倍。在智能機(jī)平臺游戲中,包括憤怒的小鳥等游戲都采用了物理引擎進(jìn)行開發(fā)。Cocos2D-x中支持Box2D和Chipmunk兩種物理引擎。本章就介紹物理引擎的基本概念Cccos2D-x中這兩種物理引擎的使用。移動(dòng)互聯(lián)網(wǎng)創(chuàng)新工場2022-3-153物理引擎物理引擎在使用物理引擎的游戲中,可以
2、把物理引擎理解為控制整個(gè)游戲中精靈移動(dòng)的邏輯控制餐通過定義不同節(jié)點(diǎn)在物理效果中扮演的角色來控制所有節(jié)點(diǎn)的碰撞和移動(dòng)軌跡。 游戲世界的很多運(yùn)動(dòng)規(guī)律都是模擬現(xiàn)實(shí)的,盡管有些游戲在現(xiàn)實(shí)的基礎(chǔ)上有所創(chuàng)新,但是更多的時(shí)候要給玩家以真實(shí)的感覺,模擬現(xiàn)實(shí)并給予玩家真實(shí)的游戲感覺非常重要。在不使用物理引擎的時(shí)候,可以通過自己的算法來計(jì)算物體的運(yùn)動(dòng)規(guī)律。這種方式不僅降低了開發(fā)效率,而且在運(yùn)行效果上也得到整體的優(yōu)化。于是大家把游戲中模擬物理的計(jì)算算法都提卜總結(jié)出來,形成了物理引擎。物理引擎通過為剛性物體賦予真實(shí)的物理屬性的方式來計(jì)算動(dòng)、旋轉(zhuǎn)和碰撞反映。物理引擎使用對象屬性(動(dòng)量、扭矩或者彈性)來模擬剛體行為。好的
3、物理引擎允許有復(fù)雜的機(jī)械裝置,像球形關(guān)節(jié)、輪子、氣缸或者鉸鏈。有些也支持非剛性體的物理屬性,比淹體。盡管物理引擎的功能很強(qiáng)大,但是也有其局限性。在模擬現(xiàn)實(shí)世界相關(guān)運(yùn)動(dòng)效果時(shí),如杲完全模擬,會(huì)消耗很大的運(yùn)算量,因此采取一些“捷徑”來模擬現(xiàn)實(shí)的運(yùn)行效果。比如,當(dāng)物體運(yùn)動(dòng)的步長(速度)超過它自己本身的效果時(shí),會(huì)發(fā)生物體互相穿透的效果,所以需要控制物體的移動(dòng)速度來避免這種穿越現(xiàn)象的發(fā)生 什么是物理引擎 移動(dòng)互聯(lián)網(wǎng)創(chuàng)新工場2022-3-154物理引擎的作用物理引擎的作用真實(shí)的物理世界的模擬。采用牛頓力學(xué)為基礎(chǔ)模擬出物理效果。這樣有兩個(gè)好處,首先是精靈的運(yùn)動(dòng)會(huì)更加真實(shí),包括精靈間的相互碰撞、自由落體等,然
4、后就是可以增加操作的隨機(jī)性,從而提高游戲的游戲性。整體的處理碰撞機(jī)制。雖然絕大部分碰撞的邏輯可以完全不依賴物理引擎來自己實(shí)現(xiàn),但是如果一個(gè)游戲需要頻繁地大量地處理碰撞的時(shí)候,物理引擎絕對是第一選擇,因?yàn)槲锢硪婵梢韵到y(tǒng)化處理碰撞,并且能夠處理較為復(fù)雜的情況。關(guān)節(jié)與連接的模擬。例如,憤怒的小鳥游戲不僅要處理大量的碰撞,還要處理需要攻擊目標(biāo)建筑物之間的連接效果等。這時(shí)候用物理引擎來幫助實(shí)現(xiàn)不僅加快了開發(fā)速度,同時(shí)系統(tǒng)化的處理還可以提高程序的運(yùn)行效果。優(yōu)化的性能。物理引擎對于模擬物理效果的算法進(jìn)行了優(yōu)化,這些代碼都是經(jīng)歷過很多次推敲的,比個(gè)人實(shí)現(xiàn)的算法在整體的性能上要高。移動(dòng)互聯(lián)網(wǎng)創(chuàng)新工場2022-
5、3-155Box2D和和Chipmunk的對比的對比 和Cocos2D引擎一樣,Cocos2D-x同樣支持Box2D和Chipmunk兩個(gè)二維的物理引擎,那么在開發(fā)中如何選擇呢?二者又有何異同呢?Chipmunk是COCOS2D系列游戲引擎最早引入的物理引擎,用C語言實(shí)現(xiàn)。由于文檔較少,其使用程度沒有Box2D廣泛。Box2D由C+實(shí)現(xiàn),而且有JavaScript等其他語言的實(shí)現(xiàn),在Hash網(wǎng)頁動(dòng)畫等方面應(yīng)用也比較廣泛,因此大多數(shù)開發(fā)人員比較偏愛Box2D。單純從功能上來說,Box2D和Chipmunk并沒有太大的區(qū)別,只是有一些微小的區(qū)別.比如Box2D針對快速移動(dòng)的物體“穿越”另一物體有特
6、殊的檢測方式。除非你對某種功能有著特殊的需求,否則二者在功能上沒有本質(zhì)的區(qū)別。在使用上,由于二者的實(shí)現(xiàn)語言不同,所以從自己熟悉的語言開始會(huì)相對容易一些。另外,Chipmunk有不錯(cuò)的Objective-C語言接口,對于蘋果系列設(shè)備的開發(fā)更好一些,尤其在Cocos2D-iPhone中,因此,之前使用Cocos2D-iPhone可能也會(huì)更傾向于使用Chipmunk。 移動(dòng)互聯(lián)網(wǎng)創(chuàng)新工場2022-3-156Box2D物理引擎物理引擎 Box2D是用C+編寫的,開發(fā)者是ErinCatto。他從2005年開始就在著名的GDC(GameDevelopersConference, 游戲開發(fā)者會(huì)議)上做物理模
7、擬相關(guān)的演講。2007年9月,他公布了Box2D物理引擎。Box2D以其出色的物理模擬效果和開源的氏性得到了開發(fā)者的認(rèn)同。從那以后,Box2D引擎的開發(fā)就十分活躍,Box2D的各種實(shí)現(xiàn)版本就層出不窮,包括用于Flash網(wǎng)頁游戲的版本。Box2D和手機(jī)游戲的結(jié)緣可以說是從Box2D的Java版本岀現(xiàn)開始。開發(fā)者喜歡在Android的游戲開發(fā)時(shí)集成Box2D來幫助開發(fā)更炫的游戲效果。自從Box2D集成到C0C0S2D系列引擎以后,Box2D和手機(jī)游戲的聯(lián)系更加緊密。 移動(dòng)互聯(lián)網(wǎng)創(chuàng)新工場2022-3-157BOX2D引擎中的重要概念引擎中的重要概念 本部分介紹Box2D引擎中的重要概念,這些概念是構(gòu)
8、成Box2D世界的基礎(chǔ)。剛體(rigidbody):不會(huì)發(fā)生形變的物體,其任何兩點(diǎn)間的距離是不變的。形狀(shape):依附于物體的二維的形狀結(jié)構(gòu),具有摩擦和恢復(fù)的材料屬性。約束(constraint):約束就是限制物體自由的物理連接:在二維中,物體有三個(gè)自由度,比如把一個(gè)物體固定在墻上,它只能繞著固定的點(diǎn)旋轉(zhuǎn),它失去了兩個(gè)自由度。接觸約束(contactconstraint):自動(dòng)創(chuàng)建的約束,防止剛體穿透、模擬摩擦和恢復(fù)的特殊約束,不需要手動(dòng)創(chuàng)建。關(guān)節(jié)(joint):把兩個(gè)物體固定在一起的約束,包括旋轉(zhuǎn)、距離和棱柱等。關(guān)節(jié)可以支持限制和馬達(dá)。關(guān)節(jié)馬達(dá)(jointmotor):個(gè)關(guān)節(jié)馬達(dá)依靠自
9、由度來驅(qū)動(dòng)物體,比如使用馬達(dá)來驅(qū)動(dòng)旋轉(zhuǎn)。關(guān)節(jié)限制(jointlimk):限制關(guān)節(jié)的運(yùn)動(dòng)范圍如同人的胳賻只能在一定范圍內(nèi)運(yùn)動(dòng)一樣。世界(world):物體、形狀和約束互相作用形成的世界:允許創(chuàng)建多個(gè)世界。移動(dòng)互聯(lián)網(wǎng)創(chuàng)新工場2022-3-158Box2D的使用步驟的使用步驟 Box2D物理引擎的使用步驟如下,同時(shí)也是大多數(shù)物理引擎所采用的方式。1)創(chuàng)建一個(gè)世界,同時(shí)設(shè)置其參數(shù)。2)創(chuàng)建剛體地面,定義一個(gè)形狀,把它綁定在剛體上:3)創(chuàng)建世界中的其他剛體和約束等。4)在游戲的邏輯循環(huán)中加人物理引擎的世界更新函數(shù)。整個(gè)過程很清晰,主要目的就是將負(fù)責(zé)渲染的C0c0S2D-x引擎部分和負(fù)責(zé)物理邏輯的Box2D部分結(jié)合在一起。這也是在其他平臺上使用BOX2D時(shí)需要讀的事情,其中的創(chuàng)建剛體、約束和關(guān)節(jié)等是最關(guān)鍵的部分,也是和渲染的C0c0S2D-x引擎部分結(jié)合的關(guān)鍵部分。 移動(dòng)互聯(lián)網(wǎng)創(chuàng)新工場2022-3-159在在Cocos2D-x中使用中使用Chipmunk Chipmunk引擎由HowlingMoonSoftware的ScottLebcke開發(fā),由C語言編寫,項(xiàng)目兩址是http:/c0de.g00gle.c0m/p/chipmunk-physics/,論壇地址是http:/chipmunk- 相關(guān)代碼 請參見書籍10.3中的實(shí)例移動(dòng)互聯(lián)網(wǎng)創(chuàng)新工場20
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度智能農(nóng)業(yè)農(nóng)藥化肥供應(yīng)及服務(wù)合同3篇
- 2025年度年度城市經(jīng)濟(jì)適用房購置合同3篇
- 2025年度股東借款及股權(quán)激勵(lì)計(jì)劃合同3篇
- 2025年農(nóng)村個(gè)人承包土地經(jīng)營權(quán)與農(nóng)村信息化建設(shè)合同3篇
- 二零二五年度農(nóng)業(yè)機(jī)械租賃與農(nóng)業(yè)人才培養(yǎng)合作合同3篇
- 二零二五年度醫(yī)療耗材研發(fā)與創(chuàng)新合作合同3篇
- 二零二五年度合伙經(jīng)營中式快餐店合同書2篇
- 個(gè)人承包城市照明設(shè)施維護(hù)2025年度合同3篇
- 2025年度綠色生態(tài)豬肉直供基地合作協(xié)議合同3篇
- 公墓墓位買賣及墓園墓碑售后服務(wù)保障協(xié)議3篇
- 【個(gè)人簡歷】大學(xué)生職業(yè)生涯規(guī)劃書10篇
- 患者滿意度調(diào)查分析
- YS/T 1149.2-2016鋅精礦焙砂化學(xué)分析方法第2部分:酸溶鋅量的測定Na2EDTA滴定法
- GB/T 11017.1-2002額定電壓110kV交聯(lián)聚乙烯絕緣電力電纜及其附件第1部分:試驗(yàn)方法和要求
- 原料藥FDA現(xiàn)場GMP符合性要求與檢查實(shí)踐課件
- 科技創(chuàng)新社團(tuán)活動(dòng)教案課程
- 氨堿法純堿生產(chǎn)工藝概述
- 基礎(chǔ)化工行業(yè)深度:電解液新型鋰鹽材料之雙氟磺酰亞胺鋰(LiFSI)市場潛力可觀新型鋰鹽LiFSI國產(chǎn)化進(jìn)程加速
- 年產(chǎn)10000噸一次性自然降解環(huán)保紙漿模塑餐具自動(dòng)化生產(chǎn)線技改項(xiàng)目環(huán)境影響報(bào)告表
- 實(shí)戰(zhàn)銷售培訓(xùn)講座(共98頁).ppt
- 測控電路第7章信號細(xì)分與辨向電路
評論
0/150
提交評論