微信小游戲源碼|微信答題小程序游戲源碼支持H5及手機WAP


前言:微信小游戲源碼是基於HTML5和微信小程序庫開發的網頁小游戲,其具有運行速度快、互動性好和平台移植容易等特點。

微信小游戲源碼所包含的庫:

●一個相位-小游戲模板,准備使用;

●《Flappy Bird》的一一個完整的迷你游戲演示;

●微信小游戲指南;

●完全集成了phaser 2.9 + pixiJs + p5重力引擎(來源ittlee /微信小游戲phaser);

●基於es6的可擴展代碼結構(基於導入/導出特性);

●游戲功能使用:

。基於JSON的精靈動畫;

。導入和緩存資產系統;

。動畫;

。一個重力系統;

。碰撞系統;

。基於Leancloud的社交排行榜系統。

代碼結構:

├───game.js : main entry point, Phaser. Game main function declared here
├───game.json : minigame configuration
├───images : static assets repository
└───js
├───game
│ ├───managers : each manager is a set of functions
│ │ ├───collisions.js : handles all collision events
│ │ ├───db.js : backend CRUD functions for leaderboard (based on Leancloud API)
│ │ ├───events.js : main events of the game functions
│ │ ├───generators.js : objects generators functions
│ │ ├───leaderboard.js : functions that handle leaderboard and ranking algorithms
│ │ ├───wechat.js : functions that handle WeChat-related API (getting user profile, user friends list etc...)
│ └───objects : Each object is a Class, with its separated file
│ ├───Background
│ ├───Bird
│ ├───Button
│ ├───Floor
│ ├───Pipe
│ ├───objects.js : singleton namespace window.objects where all the game objects live
│ ├───phases.js : different game phases (preload, create, update (called every frame), render (called every frame))
│ └───state.js : singleton namespace window.state where all the game states and parameters live
└───libs
└───lodash-modules

微信小程序游戲開發指南:

1.微信小游戲源碼是如何運作的?

2.我是否可以編寫自己的小游戲?什么時候發布?

3.限制是什么?就表現而言,可接受的期望是什么?

4.網頁-迷你游戲和迷你游戲→網頁轉換是否可行?

5.開始

  1. IDE和調試工具演示

7.讓你的小游戲具有社交性可用的api

8.開始的資源和鏈接

9.在你開始之前,給你一些建議

1)微信小游戲源碼是如何運作的?

整體架構:就像網頁游戲

微信小程序游戲是基於網頁技術,主要使用的語言是Javascript。這個系統與網絡上的類似:canvas元素是可訪問的,我們可以在每一幀上繪制。我們可以訪問WebGL API,因此能夠使用GPU使用Shaders (GLSL語言)進行計算。

ctx.fillRect(25, 25, 100, 100);
ctx.clearRect(45, 45, 60, 60);
ctx.strokeRect(50, 50, 50, 50);

但是實施上有一些不同

然而,WebGL和Canvas API實現不同於你可以在大多數web瀏覽器上找到的本地web實現。小游戲的運行環境在iOS上是JavaScriptCore,在Android上是V8。它們都運行在沒有BOM和DOM的環境中。沒有全局文檔,也沒有窗口對象。因此,如果你想使用DOM API來創建像Canvas和Image這樣的元素,它會拋出一個錯誤。更多官方小游戲文件(中文)。

Web Libraries可以適應小游戲環境

為了在網頁和小游戲之間架起橋梁,微信小游戲團隊一直在開發一個特殊的庫,武器適配器。我們的目標是讓網頁庫與迷你游戲兼容。然而,該庫的當前實現仍然不完善,而且經常需要額外的工作來修復您打算使用的每個第三方庫。

2)我是否能夠編寫自己的小游戲?什么時候發布?

我是否可以編寫自己的小游戲?是的,你已經可以編寫自己的小游戲了!你所需要的一切,從文檔到開發工具,都是公開的。

有什么限制?就表現而言,可接受的期望是什么?

游戲圖像風格:2D和3D都是可能的。

多虧了WebGL,我們還可以顯示3D游戲,這將是GPU加速的。

性能:比Web游戲稍微優化的系統

這個系統還很年輕,處於beta測試階段,但我們已經看到它的性能與網頁游戲非常相似。就目前而言,一個很好的經驗法則是,不要期望網頁游戲能做的更多。

規模仍然是主要限制因素。

迷你游戲的最大限制之一是它的大小。微信目前只允許最多4mb的游戲包。你的游戲可能能夠從外部服務器下載額外的資產,但要考慮到這些資產必須在每次游戲啟動時獲取。所以,就資產而言,游戲應該是相當輕的,3D游戲應該使用低多邊形3D對象和低質量紋理。

4)網頁游戲→微信迷你游戲轉換是否可行?微信小游戲→網頁游戲的轉換如何?

網頁→迷你游戲轉換:主要取決於底層代碼庫

將網頁游戲轉換成迷你游戲是可能的。然而,根據所使用的特定庫和游戲引擎,這個過程可能需要數天甚至數月的開發時間。事先審核游戲源代碼是必要的,以估計具體的調整需要多少時間。

迷你游戲→網頁轉換:非常快!

如果使用標准的網頁游戲框架進行迷你游戲開發,如Phaser,你的代碼將基本兼容網頁,所以無需太多調整就可以在瀏覽器上運行。

以官方迷你游戲為例

a、下載微信miniapp和迷你游戲IDE;

b、按照以下步驟運行騰訊示例代碼;

c、你現在可以在你的手機上通過點擊Eye按鈕和掃描QRcode預覽迷你游戲樣本。

6)IDE和調試工具演示

IDE和調試工具與迷你應用程序相同。不過,這些都是純中文的。總的來說,調試經驗是非常好的,盡管它可能有一些bug,因為它的年輕。

為了清晰起見,這里將整個界面翻譯成英文。

7)讓你的小游戲具有社交性:可用微信api

迷你游戲的核心趣味之一是無縫接入微信平台內的社交功能,這增加了它們的活力和用戶粘性。下面介紹主要機制以及如何使用它們。

獲取當前用戶信息

wx.login({
success: function () {
wx.getUserInfo(userInfos)
}
})

你得到什么:

。用戶名;

。城市;

。語言;

。性別;

。照片URL;

●你還不能得到的:

。openID(但這可能是因為迷你游戲還沒有綁定到官方賬號,盡管openID很快就可以訪問;

●你永遠不會得到的:

。電話號碼;

。真實姓名;

。任何其他個人資料資料。

你可以獲得的其他個人信息:

wx.getLocation() => user location
wx.getWeRunData() => get podometer data from werun

獲取玩游戲的好友數據列表

wx.getFriendCloudStorage()

從用戶的好友列表獲取每個用戶的數據;;

這些數據可以被修改和寫入;

有利於好友排行榜和游戲中的好友狀態提示;

獲取Group-who-played-the-game數據列表

wx.getGroupCloudStorage()

從共享小游戲的群組中獲取每個用戶的數據;

這些數據可以被修改和寫入;

適合群體游戲;

8)開始的資源和鏈接

迷你游戲

●文檔

。迷你游戲官方文檔

●代碼存儲庫

。Phaser +小游戲模板,准備用戶littlelee /微信小游戲Phaser。Threejs +小游戲端口

●IDE

移相器游戲庫

●移相器的網站

●Phaser:創建你的第一 個游戲教程

●移相器的例子

●2.6移相器文檔

9)在你開始之前給你一些建議

不要相信預覽,一定要在真實設備上進行測試。

static preload(game) {
game.load.image('bg', 'js/game/objects/Background/bg.jpg') => working on both emulator + phone
// game.load.image('bg', './js/game/objects/Background/bg.jpg') => working only on emulator
}

這是在模擬器上工作的一段代碼,但不是在真實設備上:

限制第三方庫的使用,因為經常需要額外的工作

像lodash這樣的圖書館並不是現成的。您經常需要進入源代碼,並根據DOM/BOM api修改部件,以真正實現加載它們。在Lodash上,您可以通過逐個添加特定的模塊來解決問題,而不是一次性添加整個庫。但這並不總是那么容易!

npm install --save lodash.forEach
NOT
npm install --save lodash
將代碼分成更小的文件,使調試更容易

當前的IDE調試系統的工作方式與Chrome和Firefox上的調試系統不同。我遇到過的最大的挫折之一是,許多問題最終都會拋出一個非常模糊的、非特定的錯誤消息,除了失敗的文件之外,沒有任何關於問題來自哪里的信息。因此,將代碼划分為更小的塊是非常重要的,因為在1000行文件中尋找一個拼寫錯誤,而沒有任何提示,比在50行文件中找到一個拼寫錯誤要困難得多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM