1. 程式人生 > 實用技巧 >小遊戲雲開發入門

小遊戲雲開發入門

前言

百度:
https://q.qq.com/wiki/cloud/base/intro.html

QQ:
https://q.qq.com/wiki/cloud/base/intro.html

WX:
https://developers.weixin.qq.com/minigame/dev/wxcloud/basis/getting-started.html

當下雲開發比較火,不過本人並不是很感冒,因為他的好處顯而易見,但缺點也是致命的。
好處就是1. 不用自己買伺服器,域名認證,不用擔心伺服器過期;省去了很多時間。2. 初始容量免費,基本夠用。

缺點就是不能跨平臺。這個就很傷了,我們開發一款遊戲不可能只上一個平臺吧!雖然我們可以上所有擁有云開發能力的平臺,但是畢竟沒有云開發能力的平臺也很多啊!

不過例如世界排行榜這樣的功能還是可以用一下的。頂多就是沒有云開發能力的平臺不顯示排行榜功能就是了。

我是用這個雲開發能力做了一個比較完整的買賣系統。進入這個系統後所有資料聯網獲取,離開這個系統單機玩法。所以沒有云開發能力的平臺也就只能體驗單機部分了。

開始

這裡我以微信雲開發為例:

  1. 開通服務
    這一步要注意的是使用的appId 不能是測試id,否則你的雲開發按鈕是不可點選的。
    這一步結束之後你會獲得一個環境id。

  2. 初始化

wx.cloud.init({
  env: 'test-x1dzi'
})

將上一步獲得的環境id傳入init函式即做好了初始化工作,而且此方法是沒有返回值的。
3. 呼叫雲函式

wx.cloud.callFunction({
  name: 'add',
  data: {
    a: 12,
    b: 19
  }
}).then(console.log)

基本在小程式端的重要部分就這些了。當你看過了幾個支援雲開發的平臺說明文件後你會發現,他們在小程式端的使用方式其實是一樣的。只是名稱空間的不同而已。所以在小程式端很容易做好多平臺支援的。
剩下的就是寫雲函數了。微信雲其實就是nodejs伺服器。每一個雲函式你可以理解為後端經過路由後呼叫的函式。只是在除錯和上傳上的方式上有所不同而已。

這裡的除錯是比較難受的,首先用creator打出來的包雲函式目錄是會被清理的,如果你把函式目錄放到build-template中你又沒法像在微信開發者工具中一樣及時的看效果。又不能在開發者工具中改動一下就複製一份到build-template中。由於我的系統沒那麼複雜,所以目前就是每次打包後重新下載我需要的雲函式。其實可以寫個外掛,在打包之前把雲函式存放到一個地方,打完包之後再放回來。

開發方式

我的開發方式比較簡單,直接將小程式端的雲函式呼叫寫成一個服務,新增到我的網路框架中,就跟我用長短連結一樣使用了。
文章地址:https://mp.weixin.qq.com/s/DQuiQejiS6qtBTef_yu0Sw
擴充套件的方式很簡單

  1. 定義一個新的連結方式。
  2. 定義類,實現介面
    這裡的url 就是環境id,協議號就是雲函式的名稱。
    對於sendData類中的接收方式可以自己隨意更改。
export default class WXCloudService extends Service {
    /**
     * 由於init函式無返回值,所以直接通知連結成功
     * @param url 相當於環境ID
     * @param port 無用
     */
    connect(url: string, port?: number) {
        super.connect(url);
        console.log("WXCloudService connect  url  ", url)
        wx.cloud.init({
            env: url
        })
        this.emit(NetConfig.OPEN, url);
    }

    sendData(message: SendMessage) {
      
        let self = this;
        let protoID = message.getProtoID();
        let data = message.getData();
        console.log("WXCloudService sendData  protoID  ", protoID,' data ',data)
        wx.cloud.callFunction({
            // 需呼叫的雲函式名
            name: protoID,
            // 傳給雲函式的引數
            data: data,
            success: function (res) {
                console.log('WXCloudService  success res  ', res)
                self.onData(res.result, protoID);

            },
            fail: function (res) {
                console.log('WXCloudService  fail res  ', res)
                self.onError(message);
            },
            complete: function (res) { },

        })
    }

    isReady() {
        return true;
    }
}
  1. 在工廠中建立

  2. 連結時使用之前定義的Netconfig.CLOUD

  3. 使用方式我已經在《一個可遮蔽長短連結的網路模組》文章中說過,這裡就不在贅述了。

注意事項

  1. 雲函式的建立,使用後臺建立的雲函式,和在開發者工具中建立的雲函式不同。我最終選擇使用開發者工具建立,然後上傳。
  2. 本地除錯,有時候沒有發現任何錯誤,除錯就是啟動失敗,刪了雲函式,重新下載再啟動就好使了。
  3. 千萬記住,雲函式上傳之後再用creator打包,否則你的函式就白寫了。所以最好還是用一種你熟悉的方式,在打包的時候動手腳。
  4. 不建議使用doc函式,它只支援傳入_id 。

結語

以上就是我這幾天使用雲開發的心得。也是感覺比較重要的地方。當然,最終還是推薦看文件,那裡更詳細。
如需購買框架,請進入公眾號點選我的服務,原始碼出售標籤。

歡迎關注公眾號《微笑遊戲》,瀏覽更多內容。

歡迎掃碼關注公眾號《微笑遊戲》,瀏覽更多內容。