- 精通Cocos2d-x游戲開發(fā)(進(jìn)階卷)
- 王永寶
- 939字
- 2020-11-28 22:37:08
10.1 物體的運(yùn)動
前面講解了剛體以及關(guān)節(jié),知道了它們在被動地受到重力或者馬達(dá)的作用下,會產(chǎn)生相應(yīng)的物理效果,那么如何主動來控制物體的運(yùn)動呢?
對于關(guān)節(jié),可以用設(shè)置馬達(dá)的方式,馬達(dá)來驅(qū)動關(guān)節(jié)運(yùn)動,而對于剛體,可以通過施加力或者沖量來使其移動,施加角力矩或者角沖量來使其旋轉(zhuǎn)等,聽起來很厲害,但本質(zhì)上都是一些比較簡單的東西,放到代碼中實(shí)現(xiàn)就更簡單了。
10.1.1 施加力和沖量
對一個物體施加力,可以通過下面兩個函數(shù)來實(shí)現(xiàn),ApplyForce第一個參數(shù)決定物體運(yùn)動的方向,單位是牛頓,而第二個參數(shù),決定物體受力點(diǎn)的位置,假設(shè)受力點(diǎn)不在物體上,也是有效的,效果如圖10-1所示,藍(lán)色的受力點(diǎn)在物體外部,當(dāng)對其施加一個向上的力時,可以將受力點(diǎn)認(rèn)為是在正方形的右上角,為物體施加力就像在推動一個物體一樣。

圖10-1 施加力
///為物體的point點(diǎn)施加一個方向?yàn)閒orce的力,point是世界坐標(biāo) void ApplyForce(const b2Vec2& force, const b2Vec2& point); ///對物體的中心點(diǎn)施加一個方向?yàn)閒orce的力 void ApplyForceToCenter(const b2Vec2& force);
對一個物體施加一個沖量可以用下面的ApplyLinearImpulse()函數(shù)來實(shí)現(xiàn),第一個參數(shù)也是一個力的向量,這個向量的單位是kg·m/s。物體質(zhì)量越大,運(yùn)動的速度會越慢,而為物體施加一個沖量,等于直接賦給物體一個速度,在施加一個很大的沖量的時候,物體會一下子沖出去,然后在摩擦、重力、碰撞的影響下,慢慢衰減下來,就像突然使用了極品飛車的加速氮?dú)庖粯印?/p>
///在point上施加向量為impulse的沖量,沖量的單位是kg·m/s void ApplyLinearImpulse(const b2Vec2& impulse, const b2Vec2& point);
對比力和沖量,對物體施加力需要通過力來擺脫物體的靜摩擦力,然后慢慢加速,而沖量則是可以直接對物體賦予一個速度。兩種施力的力量參數(shù)的單位是不一樣的,但受力點(diǎn)的意義一樣,不同的受力點(diǎn)會在受力過程中,對物體產(chǎn)生不同的旋轉(zhuǎn)。
10.1.2 角力矩和角沖量
使用下面的函數(shù)可以為物體施加一個角力矩和角沖量,當(dāng)傳入一個正數(shù)時,物體會在逆時針方向上自轉(zhuǎn),而傳入一個負(fù)數(shù)時,物體在順時針方向上自轉(zhuǎn)。傳入的參數(shù)越大,并且物體質(zhì)量越小,轉(zhuǎn)動越快。從本質(zhì)上講,角力矩相當(dāng)于上面的施加力,而角沖量則是直接賦予物體角速度。施加角力矩,物體會慢慢運(yùn)動起來,就像擲鏈球一樣,把鏈球拉起來,慢慢轉(zhuǎn)圈。而施加角沖量,可以讓物體瞬間高速旋轉(zhuǎn)。在沒有收到其他力的作用下,旋轉(zhuǎn)的物體并不會產(chǎn)生移動。
///施加一個角力矩,讓物體根據(jù)穿過質(zhì)點(diǎn)的z軸進(jìn)行旋轉(zhuǎn) void ApplyTorque(float32 torque); ///為物體施加一個角沖量,單位是kg·m/s void ApplyAngularImpulse(float32 impulse);
- 圖像目標(biāo)跟蹤技術(shù)
- Android進(jìn)階解密
- iPhone玩家必備
- 全業(yè)務(wù)運(yùn)營下網(wǎng)絡(luò)融合實(shí)現(xiàn)
- 3D教育藍(lán)皮書
- 步步圖解電子元器件應(yīng)用與檢測技能
- 電子產(chǎn)品零部件檢測與選用技能演練
- 深入淺出5G核心網(wǎng)技術(shù)
- 路由器/交換機(jī)項(xiàng)目實(shí)訓(xùn)教程
- 手繪圖說電子電路圖
- 未來寬帶網(wǎng)絡(luò)的關(guān)鍵支撐技術(shù)
- 任務(wù)驅(qū)動學(xué)模擬電子技術(shù)
- 36個創(chuàng)意電子小制作——安全衛(wèi)士
- 基于硬件邏輯加密的保密通信系統(tǒng)
- 移動支付改變生活:電信運(yùn)營商的移動支付創(chuàng)新與實(shí)踐