Base2 master READ ONLY 0
  • explorer
  • search
a [App]
a CG.Base2
a README.md
a app.ts
a [Test]
a test
  • README.md

Base2

重新架構的Base2,相比Base少了很多功能,包括Pixi/Sound/ResourceManager/Physics/geoms都被拿掉,只留最主要的CG功能。

基本功能

  1. 取得專案的資料
// 取得專案代碼
CG.Base2.projectCode;
// 取得資源
CG.Base2.getAppResource(resourceAlias: string)
// 取得資源網址
CG.Base2.getAppResourceFileUrl(resourceAlias: string, filename?: string)

更新循環

Base2內建了一個更新循環系統。

// 先定義一個每幀都要更新的函式
function updateFunc(dt: number) { }
// 將函式加入更新循環系統
CG.Base2.addUpdateFunction(updateFunc);
// 將函式移出更新循環系統
CG.Base2.removeUpdateFunction(updateFunc);

另外也提供子更新循環系統可使用。

import Updater = CG.Base2.utils.Updater;
// 先定義一個每幀都要更新的函式
function updateFunc(dt: number) { }
// 建立子更新循環系統
let updater = new Updater();
// 將函式加入更新循環系統
updater.addDelayFunction(updateFunc);
// 可暫停
updater.pause();
// 可繼續
updater.resume();

鍵盤管理員

Base2提供了一個基本的鍵盤管理員,可以在按鍵被按下去(DOWN)、提起來(UP)、先按再提(PRESSED)的時候觸發事件。

// 取得鍵盤管理員
import Keyboard = CG.Base.keyboards.Keyboard;
import keyboard = CG.Base2.keyboard;
import Key = CG.Base2.keyboards.Key;
// 鍵盤事件
keyboard.on(Keyboard.EVENT.DOWN, (event: KeyboardEvent) => {
    if (Key.SPACE.matchEvent(event)) {
        // 當空白鍵被按下去的時候...
    }
})
// 檢查目前按鍵狀態
if (keyboard.isDown(Key.SPACE)) {
    // 目前空白鍵是正在按下去的狀態
}

補間變化

Base2內建了tweenjs用來將某個物件的屬性,在一段時間內作動態的變化。

async function makeAnimation() {
    // 建立一隻有x,y資料的動物
    let animal = {
        x: 100,
        y: 100,
    };
    // 建立補間變化,在1秒內讓動物的x和y變化到指定的值
    let tween = new TWEEN.Tween(animal);
    tween.to(
        {
            x: 300,
            y: 200,
        },
        1000 // 毫秒
    );
    tween.start();
    // 等待變化完畢
    await CG.Base2.waitTween(tween);
    console.log(animal.x);
    // 這時會印出 300
}

JSZip

Base2內建JSZip

async function loadZip() {
    let zip = new JSZip();
    await zip.loadAsync(buffer);
    for(let filename in zip.files) {
        ...
    }
}
READ ONLY
  • problem
  • console
No problems have been detected so far.
Ln 1, Col 1, Sel 0
Markdown