cocos 常用組件

来源:https://www.cnblogs.com/xiaohuochai/archive/2018/11/24/9723911.html
-Advertisement-
Play Games

[1]Sprite [2]Label [3]Spine [4]Button [5]Audio ...


前面的話

  本文將詳細介紹 cocos 中的常用組件

 

Sprite

【概述】

  Sprite(精靈)是 2D 游戲中最常見的顯示圖像的方式,在節點上添加 Sprite 組件,就可以在場景中顯示項目資源中的圖片

  點擊 屬性檢查器 下麵的 添加組件 按鈕,然後從 添加渲染組件 中選擇 Sprite,即可添加 Sprite 組件到節點上

【屬性】

  由上圖所示,Sprite組件包含如下屬性

  Atlas表示Sprite顯示圖片所屬的Atlas圖集資源

  Sprite Frame 表示Sprite使用的SpriteFrame圖片資源

  Type 表示渲染模式,Sprite組件支持四種渲染模式

    1、普通模式(Simple):該模式為預設值,修改尺寸會整體拉伸圖像,適用於序列幀動畫和普通圖像

    2、九宮格(Sliced):修改尺寸時四個角的區域不會拉伸,適用於UI按鈕和麵板背景

    3、平鋪(Tiled): Sprite尺寸增大時,圖像不會被拉伸,而是會按照原始圖片的大小不斷重覆,就像平鋪瓦片一樣將原始圖片鋪滿整個 Sprite 規定的大小

    4、填充(Filed): 根據原點和填充模式的設置,按照一定的方向和比例繪製原始圖片的一部分。經常用於進度條的動態展示

  Size Mode 用來指定Sprite的尺寸模式

    1、Trimmed: 該模式為預設值,表示會使用原始圖片資源裁剪透明像素後的尺寸

    2、Raw: 表示會使用原始圖片未經裁剪的尺寸

    3、Custom: 表示使用自定義尺寸,當用戶手動修改過Size屬性後,Size Mode 會被自動設置為 Custom

  Trim表示節點約束框內是否包含透明像素區域,勾選此項會去除節點約束框內的透明區域,預設勾選

  Src Blend Factor 表示圖像混合模式

  Dst Blend Factor 表示背景圖像混合模式,與上面的屬性共同作用,可以將前景和背景Sprite用不同的方式混合渲染

【聲明】

cc.Sprite
cc.SpriteFrame

【使用】

this.node.getComponent(cc.Sprite).spriteFrame = '';

 

Label

【概述】

  Label 組件用來顯示一段文字,文字可以是系統字體,TrueType 字體或者 BMFont 字體和藝術數字,另外,Label 還具有排版功能

  點擊 屬性檢查器 下麵的添加組件按鈕,然後從添加渲染組件中選擇Label,即可添加 Label 組件到節點上

【屬性】

  由上圖所示,Label 組件包含如下屬性

  String 表示文本內容字元串

  Horizontal Align 表示水平對齊模式,包括Left、Center、Right,預設為left

  Vertical Align 表示垂直對齊模式,包括Top、Center、Bottom,預設為top

  Font Size 表示字體大小

  Line Height 表示行高

  Overflow 表示文字排版模式,共4種

    1、none: 該模式為預設值

    2、clamp: 節點約束框之外的文字會被截斷

    3、shrink: 自動根據節點約束框縮小文字

    4、resize: 根據文本內容自動更新節點的height屬性

  Font 指定文本渲染需要的字體文件,如果使用系統字體,則此屬性可以為空

  Font Family 表示字體名稱

【聲明】

cc.Label

【使用】

this.node.getComponent(cc.Label).string = '';  

 

Spine

【概述】

  Spine 組件對骨骼動畫(Spine)資源,進行渲染和播放

  點擊 屬性檢查器 下方的 添加組件 -> 添加渲染組件 -> Spine Skeleton 按鈕,即可添加 Spine 組件到節點上

【屬性】

  由上圖所示,Spine 組件包含如下屬性

  Skeleton Data 表示骨骼信息數據,是Spine導出後的 .json 文件

  Default Skin 表示預設的皮膚,預設值為 default

  Animation 表示當前播放的動畫名稱, 預設值為none

  Loop 表示是否迴圈播放當前動畫,預設為true

  Premultiplied Alpha 表示圖片是否使用預乘,預設為true。當圖片的透明區域出現色塊時需要關閉該選項,當圖片的半透明區域顏色變黑時需要啟用該選項

  Time Scale 表示當前骨骼中所有動畫的時間縮放率,預設為1。值越大,動畫速度越快

  Debug Slots 表示是否顯示圖片邊框,預設未選中

  Debug Bones 表示是否顯示骨骼,預設未選中

  註意:當使用 Spine 組件時,Node 節點上 Anchor 和 Size 是無效的

【聲明】

sp.Skeleton
sp.SkeletonData

【使用】

this.node.getComponent(sp.Skeleton).animation = '';

【事件】

this.node.getComponent(sp.Skeleton).setCompleteListener(track => {
    if(!this.node) return;
    if(track.animation.name !== 'play') return;                        
}); 

【註意事項】

  設置動畫的屬性,一定要在設置動畫名稱前設置。比如,迴圈一定要在動畫名稱設置前設置

this.birdSkeleton.loop = false;                
this.birdSkeleton.animation = '4_3_d_zhengzha';

 

Button

【概述】

  Button 組件可以響應用戶的點擊操作,當用戶點擊 Button 時,Button 自身會有狀態變化。另外,Button 還可以讓用戶在完成點擊操作後響應一個自定義的行為

  點擊 屬性檢查器 下麵的添加組件按鈕,然後從添加 UI 組件中選擇Button,即可添加 Button 組件到節點上

【屬性】

  由上圖所示,Button 組件包含如下屬性

  Target 表示目標節點,當該節點的狀態發生變化時,會相應地修改該節點的 SpriteFrame 或 Color

  Interactable 表示是否禁用該按鈕,預設選中

  enableAutoGrayEffect 當設置為 true 時,如果 button 的 interactable 屬性為 false,則 button 的 sprite Target 會使用內置 shader 變灰,預設未選中

  Transition 表示按鈕狀態變化時的過渡類型,共有4種過渡類型

    1、None,無過渡,預設值

    2、Color,顏色過渡,可設置 Normal、Pressed、Hover、Disabled 這四個狀態下的顏色及狀態切換的時間間隔 Duration

    3、Sprite,圖片過渡,可設置 Normal、Pressed、Hover、Disabled 這四個狀態下的背景圖片

    4、Scale,縮放過渡,可設置狀態切換的時間間隔 Duration 及用戶點擊按鈕後,按鈕的縮放值 ZoomScale

  Click Event 表示按鈕點擊事件的列表,預設為0,表示無點擊事件

【聲明】

cc.Button

【使用】

this.enterBtn.getComponent(cc.Button).normalSprite = '';
this.enterBtn.getComponent(cc.Button).pressedSprite = '';

  註意: 當button組件設置為圖片時,需要保留sprite組件,否則圖片不顯示

 

Audio

【聲明】

  在腳本內定義一個 audioClip 資源對象

properties: {
    audio: {
        default: null,
        type: cc.AudioClip
    }
}  

【播放】

  使用 cc.audioEngine.play(audio, loop, volume); 播放

cc.audioEngine.stop(this.node.audioId);
this.node.audioId = cc.audioEngine.play(this.endAudio, false);

  組件destroy時停止播放聲音

onDestroy: function () {
    cc.audioEngine.stop(this.node.audioId);
}

【聲音回調】

cc.audioEngine.setFinishCallback(this.node.audioId, () => {
    //                      
});

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Redis概述 1.是一個開源的,先進的<key,value>存儲,並用與構建高性能,可擴展的應用程式的完美解決方案 2.從它的許多競爭繼承來的三個主要特點: l Redis資料庫完全在記憶體中,使用磁碟僅用於持久性。 l 相比許多鍵值數據存儲,Redis擁有一套較為豐富的數據類型。String,Li ...
  • [20181124]關於降序索引問題3.txt--//鏈接:blog.itpub.net/267265/viewspace-2221425/,探討降序索引中索引的鍵值。--//實際上使用函數sys_op_descend.--//鏈接:http://blog.itpub.net/267265/view ...
  • [20181124]關於降序索引問題2.txt--//鏈接:blog.itpub.net/267265/viewspace-2221425/,探討降序索引中索引的鍵值。--//實際上使用函數sys_op_descend.--//前面已經提到結尾加入FF,為了排序的需要。這樣導致chr(0),以及後續 ...
  • MongoDB高級應用 Author:SimpleWu 聚合 聚合(aggregate)主要用於處理數據(諸如統計平均值,求和等),並返回計算後的數據結果。有點類似sql語句中的 count( )。 $group 使用$group是對篩選的數據進行分組。類似於mysql中的group by關鍵字。 ...
  • 不管你是從事Python、Java、Go、PHP、Ruby等等… Redis都應該是一個比較熟悉的中間件。而大部分經常寫業務代碼的程式員,實際工作中或許只用到了set value、get value兩個操作。對Redis缺乏一個整體的認識。今天就來對Redis的常見問題做一個總結。希望能夠幫助到大家 ...
  • 事務定義 事務是訪問並更新資料庫中各個數據項的一個程式執行單元。在事務操作中,要不都做修改,要麼都不做。 事務特性 事務具有ACID四個特性,分別是:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。 原子性 原子性是指要麼 ...
  • 在上一篇 學習安卓開發[2] 在Activity中托管Fragment 中瞭解了使用Fragment的好處和方法,本次記錄的是在進行列表展示時RecyclerView的使用。 RecyclerView介紹 RecyclerView及其相關類 RecyclerView的應用 引入RecyclerVie ...
  • Reflect Reflect 對象和Proxy對象一樣, 為操作對象提供了新的API。 為什麼使用 Reflect的方式來操作對象? 將 Object 對象上一些明顯屬於內部的方法放到 Reflect對象上。比如 也可以使用 修改某些 Object 方法的返回結果 讓 Object 操作都變成函數 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...