Cocos Creator基礎(一)

cc.Class聲明類型

完整聲明

有些情況下,我們需要爲屬性聲明添加參數,這些參數控制了屬性在 屬性檢查器 中的顯示方式,以及屬性在場景序列化過程中的行爲。例如:

properties: {
    score: {
        default: 0,
        displayName: "Score (player)",
        tooltip: "The score of player",
    }
}

以上代碼爲 score 屬性設置了三個參數 default, displayNametooltip。這幾個參數分別指定了 score 的默認值爲 0,在 屬性檢查器 裏,其屬性名將顯示爲:“Score (player)”,並且當鼠標移到參數上時,顯示對應的 Tooltip。

下面是常用參數:

  • default: 設置屬性的默認值,這個默認值僅在組件第一次添加到節點上時纔會用到
  • type: 限定屬性的數據類型,詳見 CCClass 進階參考:type 參數
  • visible: 設爲 false 則不在 屬性檢查器 面板中顯示該屬性
  • serializable: 設爲 false 則不序列化(保存)該屬性
  • displayName: 在 屬性檢查器 面板中顯示成指定名字
  • tooltip: 在 屬性檢查器 面板中添加屬性的 Tooltip

更多的屬性參數,可閱讀 屬性參數 

數組聲明

數組的 default 必須設置爲 [],如果要在 屬性檢查器 中編輯,還需要設置 type 爲構造函數,枚舉,或者 cc.Integercc.Floatcc.Booleancc.String

moveBy

案例參考

在 Cocos Creator 中,動作 簡單來說就是 節點的位移、縮放和旋轉

cc.moveBy = function (duration, deltaPos, deltaY) {
    return new cc.MoveBy(duration, deltaPos, deltaY);
};

方法 moveBy 一共可以傳入三個參數,前兩個參數我們已經知道,第三個參數是 Number 類型的 Y 座標,我們可以發現第二個參數是可以傳入兩種類型的,第一種是 Number 類型,第二種纔是 Vec2 類型,如果我們在這裏傳入的是 Number 類型,那麼默認這個參數就是 X 座標,此時就要填第三個參數,爲 Y 座標。上面的例子中 cc.moveBy(this.jumpDuration, cc.v2(0, this.jumpHeight)) 第二個參數傳入的是使用 cc.v2 方法構建的 Vec2 類型對象,這個類型表示的是一個座標,即有 X 座標也有 Y 座標,因爲不需要再傳入第三個參數!同時注意官方的一段話 x and y are relative to the position of the object.,這句話的意思是傳入的 XY 座標都是相對於節點當前的座標位置,而不是整個座標系的絕對座標。

moveBy() 方法的返回值,這個方法返回的是一個 ActionInterval 類型的對象,ActionInterval 在 Cocos 中是一個表示時間間隔動作的類,這種動作在一定時間內完成。到這裏我們就可以理解代碼 cc.moveBy(this.jumpDuration, cc.v2(0, this.jumpHeight)).easing(cc.easeCubicActionOut()) 前一部分 的意思了,它的意思就是構造一個 ActionInterval 類型的對象,這個對象表示在 jumpDuration 的時間內,移動到相對於當前節點的 (0,this.jumpHeight) 的座標位置,簡單來說,就是一個向上跳躍的動作。

那麼 後半部分 easing(cc.easeCubicActionOut()) 的作用是什麼呢?easingActionInterval 類下的一個方法,這個方法可以讓時間間隔動作呈現爲一種緩動運動,傳入的參數是一個緩動對象,返回一個 ActionInterval 類型對象,這裏傳入的是使用 easeCubicActionInOut 方法構建的緩動對象,EaseCubicInOut 是按三次函數緩動進入並退出的動作,具體曲線可參考下圖:

詳細內容可參考 API

*onLoad中可以定義變量,相當於外部的var;properties中定義的是元素屬性,可以在編輯器中修改

製作 Prefab

對於需要重複生成的節點,我們可以將他保存成 Prefab(預製) 資源,作爲我們動態生成節點時使用的模板。關於 Prefab 的更多信息,請閱讀 預製資源(Prefab)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章