五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

關于Defold動態(tài)加載圖片

2023-04-08 02:15 作者:Fuxfantx  | 我要投稿
  1. 拿到一張圖片(PNG),想要顯示出來,可以讓GUI Node顯示,或者讓Sprite顯示。

  2. GUI Node顯示:將圖片文件加載為紋理。先用sys.load_resource()將圖片文件轉換成String,然后用image.load將圖片String轉換為圖片Lua表,最后用gui.new_texture()將圖片Lua表轉換為GUI紋理。把紋理綁定在GUI Node上,完成顯示。

    需要注意,GUI Node恒定遮擋游戲世界的元素。因此如果你的游戲不是100%用GUI Node實現的話,按這個方法就不能實現“封面鋪底”一類的效果。

  3. Sprite顯示 法一

    首先,想個辦法讓你的圖片資源能出現在磁盤上。對于玩家導入曲目的音游,好說;對于制作方收錄曲子的音游,設為Bundle Resource(可以自己實現一個壓縮再解壓/加密再解密什么的,也可以源文件存儲)。

    然后,用Lua io庫打開文件,再用Defold-PNG原生擴展將打開的PNG文件轉換成材質Buffer,另外手搓一個材質的header。

    最后直接用resource.set_texture()把目標Sprite的材質改掉。

  4. Sprite顯示 法二

    轉變思路:Sprite原生只支持Atlas,那就嘗試把圖片轉換成Atlas資源。轉換比較簡單,用Defold的編輯器創(chuàng)建一個Atlas,再加入我們的PNG圖片即可。

    第一反應是把Atlas文件存到Custom Resource中,然后嘗試用sys.load_resource()的加載結果作為Sprite的image屬性;或者直接上go.property("my_image",resource.atlas(path))再借助self userdata取得"my_image"屬性的值,認為這個值是指向成品圖集的hash,設置為Sprite的image屬性。

    這一堆都是不可行的。因為Custom Resource最終是原樣打包不帶任何檢測,而編輯器產生的xxx.atlas文件并不是成品圖集,僅僅是一個配置文件。。。。。。。

    因此必須讓最終可能加載的Atlas都進入靜態(tài)資源樹內,使其在打包時被轉換為成品圖集。這里有一計:

    A. 準備index_01.go,index_02.go之類的Game Object文件,這些Game Object下的組件是各個Sprite,將它們的image屬性設置成最終需要加載的Atlas;

    B. 準備一個index.collection,集合內對每一個index_**.go添加一個Factory,這些Factory全部設為Load Dynamically(其實我們根本不打算讓index.collection下面的Factory創(chuàng)建index_**.go的實例)

    C. 將這個index.collection扔到啟動集合內。

    再之后,用resource.atlas()加載的Atlas就是成品圖集了。用go.property()載入Atlas,然后把Atlas的Hash轉移到目標Sprite的image屬性,最后用sprite.play_flipbook()使設定的圖片可以顯示出來。

    go.property(id,value)的value可以是一個提前建好的全局變量,這樣Atlas的載入就動態(tài)起來了。

下次講講Defold的腳本文件加載。


關于Defold動態(tài)加載圖片的評論 (共 條)

分享到微博請遵守國家法律
宁安市| 苍山县| 芜湖县| 霍州市| 谢通门县| 新安县| 璧山县| 托克托县| 汾阳市| 泸水县| 武清区| 怀来县| 弥勒县| 牙克石市| 双峰县| 大田县| 花垣县| 罗定市| 临湘市| 定州市| 钟山县| 福清市| 巨鹿县| 南乐县| 遂溪县| 清徐县| 万盛区| 曲沃县| 巴林左旗| 茌平县| 内黄县| 江达县| 三门县| 马边| 绩溪县| 新干县| 巨鹿县| 固原市| 交城县| 双江| 沛县|