<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Cocos Creator 3.8 中實現(xiàn)割繩子游戲物理效果

          共 2241字,需瀏覽 5分鐘

           ·

          2024-04-12 03:29

          05b02590701cf90b7a46fb364192ec88.webp游戲錄屏

          引言

          近日,筆者在某個砍樹游戲的廣告中看到一個非常有趣的割繩子小游戲,據(jù)說這個砍樹游戲也是用Cocos引擎開發(fā)的,出于好奇,研究了下如何在Cocos  Creator 3.8 中簡單地實現(xiàn)一下割繩子游戲效果。

          其實割繩子游戲在2010年的時候就已經(jīng)非常地火爆,它的火爆離不開它的簡單易上手、趣味性以及交互性強。

          言歸正傳,今天給大家介紹一下如何用Cocos游戲引擎實現(xiàn)割繩子游戲效果

          本文涉及的源碼可前往 【閱讀原文】獲取

          1. 實現(xiàn)割繩子游戲的關(guān)鍵是什么?

          主要包括以下幾個方面:

          1. 物理系統(tǒng)的應(yīng)用:Cocos Creator 3.8提供了強大的物理系統(tǒng),可以利用物理引擎來模擬繩子的運動、碰撞等行為。通過設(shè)置繩子的剛體屬性、應(yīng)用關(guān)節(jié)等方式,可以實現(xiàn)繩子的剛體模擬和物理效果。

          2. 觸摸事件的處理:割繩子游戲主要通過玩家的觸摸操作來切割繩子,因此需要對觸摸事件進行處理。

          3. 關(guān)節(jié)連接的管理:游戲中的繩子通常由多個剛體組成,并通過關(guān)節(jié)連接起來。在Cocos Creator中,可以利用距離關(guān)節(jié)(DistanceJoint2D)或其他類型的關(guān)節(jié)來連接繩子的各個部分,并根據(jù)需要進行管理和控制。

          2. DistanceJoint2D組件的應(yīng)用

          DistanceJoint2D組件即距離關(guān)節(jié)組件,作為Cocos游戲開發(fā)中常用的2D關(guān)節(jié)組件。

          筆者認(rèn)為,該組件最為真實地模擬了現(xiàn)實中沒有彈性的繩子效果。

          距離關(guān)節(jié)(Distance Joint) 會將關(guān)節(jié)兩端的剛體約束在一個最大范圍內(nèi)。超出該范圍時,剛體的運動會互相影響。

          690d96feba5ce6177e000d4ccf3fd5cd.webpCocos Creator 3.8 使用手冊中的距離關(guān)節(jié)

          低于該范圍則不會互相影響。

          62b58ca3e7bc04bc29ac645b0074f782.webpCocos Creator 3.8 使用手冊中的距離關(guān)節(jié)

          3. 割繩子游戲效果的Cocos實例

          1.資源準(zhǔn)備

          首先我們先去美術(shù)妹子那里借來一段繩子和一個簡單的圖釘。

          然后再借用一下前面一期的文章《你知道怎么控制老虎機的中獎概率嗎》中的資源。

          a2be099c381e0ecbdefb5009fbd9fae2.webp

          2.拼UI

          由于在初始化的時候需要根據(jù)兩個物體的距離生成不同長度的繩子,因此我們需要先把繩子的 Sprite Type 改成 TILED 。然后做成 Prefab 備用。

          493a0d25dfe875b1e02260cc3d68147b.webp

          然后簡單地拼一下UI,主要包括兩部分,一部分是固定的釘子,另外一部分是一些可移動的懸掛的物品。繩子部分我們通過代碼動態(tài)生成。

          a19f8795ae23d41c37199e9f37fe9817.webp

          釘子需要修改 Rigidbody2D 組件的 Type 屬性為 Static 使其靜止固定。

          46e292bf744aa2fafef848fa4248a7c5.webp

          3.寫代碼

          首先創(chuàng)建一個 RopeDistanceJoint2D 組件,繼承我們的核心組件 DistanceJoint2D ,用于拓展功能動態(tài)生成我們的繩子。

          d9a1e1a3fc457bcb88311979b704bd7a.webp

          然后在動態(tài)生成繩子后,給繩子添加一個 Rope 繩子組件,初始化一下,監(jiān)聽節(jié)點位置變化,用于根據(jù)實際情況更新繩子的位置和角度以及長度。

          b609a2bcc1dc340d3ec5bdb2b25df7bf.webp

          根據(jù)實際的物理效果,不斷更新繩子的位置和角度以及長度。

          adf5db02210325fb00dc41ff5a3d4b02.webp

          最后提供一個 cut 接口,用于手指滑動切割銷毀繩子,記得在 onDestroy 中取消事件的監(jiān)聽和對 RopeDistanceJoint2D 組件的銷毀。

          7a85fd0f2d0ad6e0bad3dd65e0806d70.webp

          割繩子效果我們通過 CutTheRope 組件去實現(xiàn)。主要包括兩部分,一部分是監(jiān)聽我們的觸摸事件,另一部分是通過 Graphics 組建繪制我們的切割線。

          65faf42b95a4ce7271abd4c4e7540f49.webp

          其中檢測劃線與繩子相交的核心方法是通過 PhysicsSystem2D.instance.raycast 找出被切割的繩子,這樣我們就可以通過給定的接口對繩子進行切割。

          0169f7b695422ed706ce9bddbc000130.webp

          最后給我們的物品添加 RopeDistanceJoint2D 組件即可大功告成,可以根據(jù)具體情況添加多個連接不同的物品。

          e43c9df639bead9c84a5a4f1d9802768.webp

          4.注意事項

          • 所有物品都需要添加2D物理世界的核心組件Rigidbody2D2D剛體。
          • DistanceJoint2D組件連接的物體必須帶有Rigidbody2D組件。
          • 需要給物體配置Linear Damping線性速度衰減系統(tǒng),否者物體會永動。
          • 需要勾選DistanceJoint2D組件的Collide Connected,才能使連接的物品之間發(fā)生碰撞。

          5.效果演示

          繩子連接及切割效果。

          9063309acdbe19becbfdd2733f1e2f4d.webp

          動態(tài)效果圖。

          959902b87ee60195d969263d445a6ee5.webp

          結(jié)語

          以上是在 Cocos Creator 3.8 中實現(xiàn)割繩子游戲效果的所有內(nèi)容。希望能夠?qū)Υ蠹矣兴鶐椭?/span>

          我是"億元程序員",一位有著8年游戲行業(yè)經(jīng)驗的主程。在游戲開發(fā)中,希望能給到您幫助, 也希望通過您能幫助到大家。


          AD:筆者線上的小游戲《 填色之旅 》《 方塊掌機經(jīng)典 》《 貪吃蛇掌機經(jīng)典 》《 重力迷宮球 》大家可以自行點擊搜索體驗。

          實不相瞞,想要個在看!請把該文章分享給你覺得有需要的其他小伙伴。謝謝!

          瀏覽 36
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中文字幕北条麻妃 | 自拍偷拍综合网 | 一级片视频在线观看大全 | 天天操屄日日操屄 | 青娱乐国产精品视频网站 |