關于cocos creator換裝功能的實踐與思考

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

最近在做一個基于cocos creator的微信小游戲,其中一個主要的功能是給角色進行換裝。先來說下開發環境:

  • cocos creator1.9.3
  • spine 在官方的文檔中只有設置皮膚的接口,實際上是存在可以部分換裝的接口的。我去下載了引擎源碼,然后找到了相關方法。這里先貼出換裝的代碼,之后再來分析其原理和注意事項。
function changeCloth(skeleton, slotName, targetSkinName, targetAttaName){console.log('change cloth:', slotName, targetSkinName, targetAttaName);const slot = skeleton.findSlot(slotName);const skeletonData = skeleton.skeletonData.getRuntimeData();const skin = skeletonData.findSkin(targetSkinName);const slotIndex = skeletonData.findSlotIndex(slotName);const atta = skin.getAttachment(slotIndex, targetAttaName);slot.setAttachment(atta);
}

要想了解其作用過程,你需要對spine的一些概念有一些基本的認識:spine動畫的"根節點"是一個骨架,其下有很多骨骼,每個骨骼下都擁有一個或者多個插槽,每個插槽下可以有多個附件,但每個插槽最多只能顯示一個附件。 了解完以上知識,那么上面的代碼就很好理解了。無非就是獲取對應的插槽,然后查詢某個皮膚的附件,設置插槽罷了。但是這里還是有個坑的,因為皮膚并不直接使用附件,而是將附件放在皮膚占位符上,因此使用skin.getAttachment(slotIndex, targetAttaName)中的attaName實質上是其占位符的名字,和真正的附件名字毫無關聯。而在默認情況下,spine是沒有皮膚的(但在內部是一個名為'default'的皮膚,區別在于不適用皮膚占位符),使用的是真正的附件名。

轉載于:https://my.oschina.net/ForeverZi/blog/1844674

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277684.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277684.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277684.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pl/sql查詢表數據,報錯ORA-03115:不支持的網絡數據類型或表示法

今天測試人員遇到一個問題:pl/sql查詢表數據,報錯ORA-03115:不支持的網絡數據類型或表示法 我在plsql上查詢這張表是沒有問題的,去看了那張表,發現有個字段類型是binary_double, 查資料發現這是oracle10才出…

抖店一件代發實操,干貨滿滿!

我是電商珠珠 沒有貨源的新手,在店鋪剛開始的時候可以搞無貨源模式,也就是一件代發,去搬運別人店鋪的商品到自己店鋪,再去利用信息差去賺取差價。 很多人不知道具體要怎么做,今天我就來給大家講一講。 一、入駐 入…

Unity3D學習筆記之三Prefab組件的使用

本次教程,我們來創建一個簡單的Prefab組件。教程參考自人人素材翻譯組出品的翻譯教程《Unity游戲引擎的基礎入門視頻教程》。說到Prefab,中文翻譯為預設體,在Unity官方的書本《Unity4.X從入門到精通》中的解釋是:可以理解為是一個…

JavaScript之閉包

不少開發人員總是搞不清匿名函數和閉包這兩個概念,因此經常混用。閉包是指有權訪問另一個函數作用域中的變量的函數。創建閉包的常見方式,就是在一個函數內部創建另一個函數 --《JavaScript高級程序設計》 轉載于:https://www.cnblogs.com/songsongblue/…

【躍遷之路】【522天】程序員高效學習方法論探索系列(實驗階段279-2018.07.12)...

(躍遷之路)專欄 【躍遷之路】獎勵金計劃正式開始 從2018.7.1起,【躍遷之路】獎勵金計劃正式起航,從今以后,每月1日,我會將自己個人上月收入的1%計入【躍遷之路】獎勵金池,積累到足夠金額后,將適時用于獎勵那…

迷茫在路口——致我的2014

今天是2015年一月一日,2014年已經過去了。這意味著再過六個月整,我就要大學畢業,開始為自己的未來拼搏。這一年,我過的充實且迷茫。說2014充實,是因為我從寒假結束到有一個寒假的到來,幾乎沒有怎么閑下來&a…

Codeforces 173E Camping Groups 線段樹

Camping Groups 我們先計算出&#xff0c; 每個點當leader所能掌控的最多人數。 然后我們把詢問離線&#xff0c; 丟到responsibility最大的那個地方去。 然后從大到小往線段樹里加人&#xff0c; 加入完之后處理掉當前的詢問。 如果強制在線的話就只能樹套樹啦。 #include<…

tomcat閃退解決方案

在這幾天&#xff0c;遇到一個Tomcat啟動閃退的問題&#xff0c;通過查閱各種資料&#xff0c;算是完美解決。在此分享給朋友們。 首先&#xff0c;確定你的問題在哪里 1.查詢錯誤&#xff1a;winR 輸入cmd&#xff0c;進入一般處理程序。通過cd 找到你Tomcat的bin文件夾&#…

《古劍奇譚2》詳細測評心得

期待已久的《古劍奇譚2》。仔仔細細的玩下來給我的感覺還是不錯的。燭龍也不愧是國產單機的良心公司了&#xff0c;回合制的戰斗方式改成了即時戰斗類。 的確&#xff0c;國產動作類的游戲經驗目前等于零。《古劍2》一改以往國產網游的作風跳出了回合制的圈子實屬不易&#xff…

LeetCode 581. 最短無序連續子數組(Shortest Unsorted Continuous Subarray)

581. 最短無序連續子數組581. Shortest Unsorted Continuous Subarray 題目描述 給定一個整型數組&#xff0c;你需要尋找一個連續的子數組&#xff0c;如果對這個子數組進行升序排序&#xff0c;那么整個數組都會變為升序排序。 你找到的子數組應是最短的&#xff0c;請輸出它…

NFS4文件鎖機制探秘

2019獨角獸企業重金招聘Python工程師標準>>> 簡介 NFS4實現“租賃鎖”。每個鎖擁有一樣的“租賃期”。客戶端的讀寫操作將刷新“租賃期”。租賃期到期后&#xff0c;鎖將被服務器釋放。NFS4通過下述“模型”實現對鎖的管理&#xff1a; 1) 清晰地劃分客戶端和服務器…

Stay Hungry Stay Foolish——網絡學習平臺分享

從1月24號回家也有一陣子了&#xff0c;今天已經是31號&#xff0c;這一個周的中心思想就是一個字&#xff0c;玩。 學生一但遠離學校&#xff0c;就會碰到許多學習的阻力&#xff0c;有來自外界的&#xff0c;家里有活要干&#xff0c;有親戚要訪&#xff0c;有同學邀約&…

linux_check

linux_check echo "********CPU****************" echo 總核數 物理CPU個數 X 每顆物理CPU的核數 echo " 總邏輯CPU數 物理CPU個數 X 每顆物理CPU的核數 X 超線程數"echo 查看物理CPU個數 cat /proc/cpuinfo| grep "physical id"| sort| un…

Unity3D學習筆記之四完善Prefab并添加First Person Controller

好久沒學東西并用博客記錄了&#xff0c;這個年過的很懶散&#xff0c;慢慢臨近開學了&#xff0c;也要提前適應一下&#xff0c;寫寫東西&#xff0c;這樣開學才能更好的進入狀態呀&#xff5e;&#xff5e;本次筆記中&#xff0c;我們將來雕琢一個更加完善的Prefab&#xff0…

高精度(壓位+判負數+加減乘+讀寫)

本算法目前屬于還處于測試狀態&#xff0c;歡迎Hack&#xff01; struct gj{bool fu; //是否是負數int tt,mod; //高精的長度int s[40005]; //壓位用的數組inline gj(){ //整體初始化fu0; tt0; mod1e9;memset(s,0,sizeof(s));}inline gj read(){ register char ch; //高精度讀…

Hadoop從安裝Linux到搭建集群環境

簡介與環境準備  hadoop的核心是分布式文件系統HDFS以及批處理計算MapReduce。近年&#xff0c;隨著大數據、云計算、物聯網的興起&#xff0c;也極大的吸引了我的興趣&#xff0c;看了網上很多文章&#xff0c;感覺還是云里霧里&#xff0c;很多不必要的配置都在入門教程出現…

git推送本地分支到遠程分支

場景 有時候我們開發需要開一個分支,這樣可以有效的并行開發. 開分支有兩種方式: 一種是在遠程開好分支,本地直接拉下來;一種是本地開好分支,推送到遠程.遠程先開好分支然后拉到本地 git checkout -b feature-branch origin/feature-branch //檢出遠程的feature-branch分支到…

delphi 函數內創建對象 釋放_JavaScript 的函數底層運行機制

▲ 點擊上方藍字關注我 ▲文 / 景朝霞來源公號 / 朝霞的光影筆記ID / zhaoxiajingjing圖 / 自己畫目錄0 / 題(1)第一題(2)第二題1 / 引用數據類型&#xff1a;object2 / 引用數據類型&#xff1a;function(1)第二題&#xff0c;簡圖(2)創建函數(3)執行函數(4)閉包3 / 練習題(1)…

Unity3D學習筆記之五為Prefab添加材質

本次筆記中&#xff0c;我們將利用unity來創建并使用材質&#xff0c;把材質添加到我們的Prefab中去。這一系列教程以及素材均參考自人人素材翻譯組出品的翻譯教程《Unity游戲引擎的基礎入門視頻教程》&#xff0c;下載鏈接附在第二篇學習筆記中。繼續上次筆記中所記錄的東西&a…

分布式版本控制系統之Git

Git Git 是目前世界上最先進的分布式版本控制系統&#xff08;沒有之一&#xff09;作用 源代碼管理為什么要進行源代碼管理? 方便多人協同開發方便版本控制Git的誕生 作者是 Linux 之父&#xff1a;Linus Benedict Torvalds當初開發 Git 僅僅是為了輔助 Linux 內核的開發&…